Download OpenAPI specification:Download
Platform Repository Service - Sage Bionetworks Platform
The Access Approval services manage the fulfillment of Access Requirements, on a per-user basis.
Revoke all Access Approvals an accessor may have for a given Access Requirement.
This service is only available to the ACT. Note: requirementId must be the ID of an ACT AccessRequirement.
| accessorId required | string The user whose access is being revoked |
| requirementId required | string The ID of the Access Requirement. |
"string"Create an Access Approval, thereby fulfilling an Access Requirement for a given user.
Self-signed Access Approvals may be generated by the user being approved. ACT Access Approvals may be generated only by the Synapse Access and Compliance Team (ACT).
Since an Access Requirement may apply to multiple entities, fulfilling an Access Requirement provides access to all entities restricted by the fulfilled requirement.
the Access Approval to create
| accessorId | string The ID of the principal (user or group) approved for access |
| createdBy | string The user that created this object. |
| createdOn | string The date this object was created. |
| etag | string (Etag) Synapse employs an Optimistic Concurrency Control (OCC) scheme to handle concurrent updates. Since the E-Tag changes every time an entity is updated it is used to detect when a client's current representation of an entity is out-of-date. |
| expiredOn | string The date this object will be expired. |
| id | integer The unique immutable ID |
| modifiedBy | string The user that last modified this object. |
| modifiedOn | string The date this object was last modified. |
| requirementId | integer The ID of the Access Requirement. |
| requirementVersion | integer The version of the Access Requirement. |
| state | string (ApprovalState) Enum: "APPROVED" "REVOKED" JSON enum for the state of AccessApproval |
| submitterId | string The user who performed the necessary action(s) to gain this approval. |
{- "accessorId": "...",
- "createdBy": "...",
- "createdOn": "...",
- "etag": "...",
- "expiredOn": "...",
- "id": 12345,
- "modifiedBy": "...",
- "modifiedOn": "...",
- "requirementId": 12345,
- "requirementVersion": 12345,
- "state": "APPROVED",
- "submitterId": "..."
}{- "accessorId": "...",
- "createdBy": "...",
- "createdOn": "...",
- "etag": "...",
- "expiredOn": "...",
- "id": 12345,
- "modifiedBy": "...",
- "modifiedOn": "...",
- "requirementId": 12345,
- "requirementVersion": 12345,
- "state": "APPROVED",
- "submitterId": "..."
}Retrieving an AccessApproval given its ID.
| approvalId required | string The ID of the approval. |
{- "accessorId": "...",
- "createdBy": "...",
- "createdOn": "...",
- "etag": "...",
- "expiredOn": "...",
- "id": 12345,
- "modifiedBy": "...",
- "modifiedOn": "...",
- "requirementId": 12345,
- "requirementVersion": 12345,
- "state": "APPROVED",
- "submitterId": "..."
}Retrieving a page of AccessorGroup.
This service is only available for ACT. ACT can filter on AccessRequirementId, submitterId, and expiredOn by setting the associated fields in AccessorGroupRequest.'
| accessRequirementId | string The condition to filter by AccessRequirement. Use null to ignore this filter.' |
| expireBefore | string The condition to filter by expiration. Use null to ignore this filter.' |
| nextPageToken | string The token to get the next page result. Use null to get the first page.' |
| submitterId | string The condition to filter by submitter. Use null to ignore this filter.' |
{- "accessRequirementId": "...",
- "expireBefore": "...",
- "nextPageToken": "...",
- "submitterId": "..."
}{- "nextPageToken": "...",
- "results": [
- {
- "accessRequirementId": "...",
- "accessorIds": [
- "...",
- "..."
], - "expiredOn": "...",
- "submitterId": "..."
}, - {
- "accessRequirementId": "...",
- "accessorIds": [
- "...",
- "..."
], - "expiredOn": "...",
- "submitterId": "..."
}
]
}Retrieve a batch of AccessApprovalInfo for a single user.
| accessRequirementIds | Array of strings The ID of the access requirements. |
| userId | string The ID of the user. |
{- "accessRequirementIds": [
- "...",
- "..."
], - "userId": "..."
}{- "results": [
- {
- "accessRequirementId": "...",
- "hasAccessApproval": true,
- "userId": "..."
}, - {
- "accessRequirementId": "...",
- "hasAccessApproval": true,
- "userId": "..."
}
]
}Fetches the notifications sent for an access requirement and a list of recipients.
This service is only available for ACT.
| recipientIds | Array of numbers <= 25 items The list of recipient ids. |
| requirementId | number The id of the access requirement. |
{- "recipientIds": [
- 12345,
- 12345
], - "requirementId": 12345
}{- "requirementId": 12345,
- "results": [
- {
- "notificationType": "REVOCATION",
- "recipientId": 12345,
- "requirementId": 12345,
- "sentOn": "..."
}, - {
- "notificationType": "REVOCATION",
- "recipientId": 12345,
- "requirementId": 12345,
- "sentOn": "..."
}
]
}Retrieve the Access Approvals for the given Team. This service is only available to the ACT.
| id required | string the ID of the Team. |
| limit | integer [ 10 .. 50 ] Default: 10 Limits the size of the page returned. For example, a page size of 10 require limit = 10. The maximum limit for this call is 50. |
| offset | integer >= 0 Default: 0 The index of the pagination offset. For a page size of 10, the first page would be at offset = 0, and the second page would be at offset = 10. |
"string"These services manage the Access Requirements/Restrictions (ARs) which may be placed on Entities, or Teams.
Add an Access Requirement to an Entity, or Team. This service may only be used by the Synapse Access and Compliance Team.
the Access Requirement to create
| accessType | string (ACCESS_TYPE) Enum: "CREATE" "READ" "UPDATE" "DELETE" "CHANGE_PERMISSIONS" "DOWNLOAD" "UPLOAD" "PARTICIPATE" "SUBMIT" "READ_PRIVATE_SUBMISSION" "UPDATE_SUBMISSION" "DELETE_SUBMISSION" "TEAM_MEMBERSHIP_UPDATE" "SEND_MESSAGE" "CHANGE_SETTINGS" "MODERATE" The enumeration of possible permission. |
| concreteType | string Indicates which type of AccessRequirement this object represents. Provided by the system, the user may not set this field. |
| createdBy | string The user that created this object. Provided by the system, the user may not set this field. |
| createdOn | string The date this object was created. Provided by the system, the user may not set this field. |
| description | string Short optional description for the AR. Limited to 50 characters. |
| etag | string Synapse employs an Optimistic Concurrency Control (OCC) scheme to handle concurrent updates. Since the E-Tag changes every time an entity is updated it is used to detect when a client's current representation of an object is out-of-date. |
| id | number The unique immutable ID. Provided by the system, the user may not set this field. |
| modifiedBy | string The user that last modified this object. Provided by the system, the user may not set this field. |
| modifiedOn | string The date this object was last modified. Provided by the system, the user may not set this field. |
Array of objects (RestrictableObjectDescriptor) The IDs of the items controlled by this Access Requirement. Required when creating or updating. | |
| versionNumber | integer The version number issued to this version on the object. |
{- "accessType": "SUBMIT",
- "concreteType": "...",
- "createdBy": "...",
- "createdOn": "...",
- "description": "...",
- "etag": "...",
- "id": 12345,
- "modifiedBy": "...",
- "modifiedOn": "...",
- "subjectIds": [
- {
- "id": "...",
- "type": "EVALUATION"
}, - {
- "id": "...",
- "type": "TEAM"
}
], - "versionNumber": 12345
}{- "accessType": "SUBMIT",
- "concreteType": "...",
- "createdBy": "...",
- "createdOn": "...",
- "description": "...",
- "etag": "...",
- "id": 12345,
- "modifiedBy": "...",
- "modifiedOn": "...",
- "subjectIds": [
- {
- "id": "...",
- "type": "EVALUATION"
}, - {
- "id": "...",
- "type": "TEAM"
}
], - "versionNumber": 12345
}Get an Access Requirement to an Entity, or Team based on its ID.
| requirementId required | string the ID of the requirement. |
{- "accessType": "SUBMIT",
- "concreteType": "...",
- "createdBy": "...",
- "createdOn": "...",
- "description": "...",
- "etag": "...",
- "id": 12345,
- "modifiedBy": "...",
- "modifiedOn": "...",
- "subjectIds": [
- {
- "id": "...",
- "type": "EVALUATION"
}, - {
- "id": "...",
- "type": "TEAM"
}
], - "versionNumber": 12345
}Modify an existing Access Requirement.
This service may only be used by the Synapse Access and Compliance Team.
| requirementId required | string the ID of the requirement. |
The modified Access Requirement.
| accessType | string (ACCESS_TYPE) Enum: "CREATE" "READ" "UPDATE" "DELETE" "CHANGE_PERMISSIONS" "DOWNLOAD" "UPLOAD" "PARTICIPATE" "SUBMIT" "READ_PRIVATE_SUBMISSION" "UPDATE_SUBMISSION" "DELETE_SUBMISSION" "TEAM_MEMBERSHIP_UPDATE" "SEND_MESSAGE" "CHANGE_SETTINGS" "MODERATE" The enumeration of possible permission. |
| concreteType | string Indicates which type of AccessRequirement this object represents. Provided by the system, the user may not set this field. |
| createdBy | string The user that created this object. Provided by the system, the user may not set this field. |
| createdOn | string The date this object was created. Provided by the system, the user may not set this field. |
| description | string Short optional description for the AR. Limited to 50 characters. |
| etag | string Synapse employs an Optimistic Concurrency Control (OCC) scheme to handle concurrent updates. Since the E-Tag changes every time an entity is updated it is used to detect when a client's current representation of an object is out-of-date. |
| id | number The unique immutable ID. Provided by the system, the user may not set this field. |
| modifiedBy | string The user that last modified this object. Provided by the system, the user may not set this field. |
| modifiedOn | string The date this object was last modified. Provided by the system, the user may not set this field. |
Array of objects (RestrictableObjectDescriptor) The IDs of the items controlled by this Access Requirement. Required when creating or updating. | |
| versionNumber | integer The version number issued to this version on the object. |
{- "accessType": "SUBMIT",
- "concreteType": "...",
- "createdBy": "...",
- "createdOn": "...",
- "description": "...",
- "etag": "...",
- "id": 12345,
- "modifiedBy": "...",
- "modifiedOn": "...",
- "subjectIds": [
- {
- "id": "...",
- "type": "EVALUATION"
}, - {
- "id": "...",
- "type": "TEAM"
}
], - "versionNumber": 12345
}{- "accessType": "SUBMIT",
- "concreteType": "...",
- "createdBy": "...",
- "createdOn": "...",
- "description": "...",
- "etag": "...",
- "id": 12345,
- "modifiedBy": "...",
- "modifiedOn": "...",
- "subjectIds": [
- {
- "id": "...",
- "type": "EVALUATION"
}, - {
- "id": "...",
- "type": "TEAM"
}
], - "versionNumber": 12345
}Retrieve a page of subjects for a given Access Requirement ID.
| requirementId required | string the ID of the requirement. |
| nextPageToken | string Next page |
{- "nextPageToken": "...",
- "subjects": [
- {
- "id": "...",
- "type": "TEAM"
}, - {
- "id": "...",
- "type": "EVALUATION"
}
]
}Convert an ACTAccessRequirement to a ManagedACTAccessRequirement.
Only ACT member can perform this action.
| accessRequirementId | string The ID of an ACTAccessRequirement. |
| currentVersion | number The current version of the AccessRequirement. This field is used for concurrency check. |
| etag | string The etag of the AccessRequirement. This field is used for concurrency check. |
{- "accessRequirementId": "...",
- "currentVersion": 12345,
- "etag": "..."
}{- "accessType": "SUBMIT",
- "concreteType": "...",
- "createdBy": "...",
- "createdOn": "...",
- "description": "...",
- "etag": "...",
- "id": 12345,
- "modifiedBy": "...",
- "modifiedOn": "...",
- "subjectIds": [
- {
- "id": "...",
- "type": "EVALUATION"
}, - {
- "id": "...",
- "type": "TEAM"
}
], - "versionNumber": 12345
}Retrieve paginated list of ALL Access Requirements associated with an entity.
| id required | string The ID of an Entity. |
| limit | integer [ 10 .. 50 ] Limits the size of the page returned. For example, a page size of 10 require limit = 10. The maximum limit for this call is 50. |
| offset | integer >= 0 The index of the pagination offset. For a page size of 10, the first page would be at offset = 0, and the second page would be at offset = 10. |
{- "results": [
- {
- "accessType": "READ",
- "concreteType": "...",
- "createdBy": "...",
- "createdOn": "...",
- "description": "...",
- "etag": "...",
- "id": 12345,
- "modifiedBy": "...",
- "modifiedOn": "...",
- "subjectIds": [
- {
- "id": "...",
- "type": "EVALUATION"
}, - {
- "id": "...",
- "type": "TEAM"
}
], - "versionNumber": 12345
}, - {
- "accessType": "UPLOAD",
- "concreteType": "...",
- "createdBy": "...",
- "createdOn": "...",
- "description": "...",
- "etag": "...",
- "id": 12345,
- "modifiedBy": "...",
- "modifiedOn": "...",
- "subjectIds": [
- {
- "id": "...",
- "type": "ENTITY"
}, - {
- "id": "...",
- "type": "TEAM"
}
], - "versionNumber": 12345
}
], - "totalNumberOfResults": 12345
}Add a temporary access restriction that prevents access pending review by the Synapse Access and Compliance Team. This service may be used only by an administrator of the specified entity.
| id required | string The ID of an Entity. |
{- "accessType": "SUBMIT",
- "concreteType": "...",
- "createdBy": "...",
- "createdOn": "...",
- "description": "...",
- "etag": "...",
- "id": 12345,
- "modifiedBy": "...",
- "modifiedOn": "...",
- "subjectIds": [
- {
- "id": "...",
- "type": "EVALUATION"
}, - {
- "id": "...",
- "type": "TEAM"
}
], - "versionNumber": 12345
}Retrieve paginated list of ALL Access Requirements associated with a Team.
| id required | string the ID of the Team. |
| limit | integer [ 10 .. 50 ] Default: 10 Limits the size of the page returned. For example, a page size of 10 require limit = 10. The maximum limit for this call is 50. |
| offset | integer >= 0 Default: 0 The index of the pagination offset. For a page size of 10, the first page would be at offset = 0, and the second page would be at offset = 10. |
{- "results": [
- {
- "accessType": "READ",
- "concreteType": "...",
- "createdBy": "...",
- "createdOn": "...",
- "description": "...",
- "etag": "...",
- "id": 12345,
- "modifiedBy": "...",
- "modifiedOn": "...",
- "subjectIds": [
- {
- "id": "...",
- "type": "EVALUATION"
}, - {
- "id": "...",
- "type": "TEAM"
}
], - "versionNumber": 12345
}, - {
- "accessType": "UPLOAD",
- "concreteType": "...",
- "createdBy": "...",
- "createdOn": "...",
- "description": "...",
- "etag": "...",
- "id": 12345,
- "modifiedBy": "...",
- "modifiedOn": "...",
- "subjectIds": [
- {
- "id": "...",
- "type": "ENTITY"
}, - {
- "id": "...",
- "type": "TEAM"
}
], - "versionNumber": 12345
}
], - "totalNumberOfResults": 12345
}The Activity model represents the main record of Provenance in Synapse. It is analygous to the Activity defined in the W3C Specification on Provenance.
Used & Generated By
Used links are stored directly in the Activity model object as an array of Used objects. There is a flag in Used that marks if it was "executed". Used is an interface that is implemented by two objects:
wasGeneratedBy links are stored for each version of each Entity. Thus you update the entity with the activity id that generated it. You can ask the entity service which activity generated it, and conversely you can ask the activity service what entity versions were generatedBy a given activity.
Access Control for Activities
Access to Activity objects is dictated by the following rules:
Create a new provenenance Activity. If the passed Activity object contains a Used array, you must set the concreteType field of each Used subclass.
Access Control: READ access is granted to those users who can see a single Entity that was generated by this Activity.
{ }{- "createdBy": "...",
- "createdOn": "...",
- "description": "...",
- "etag": "...",
- "id": "...",
- "modifiedBy": "...",
- "modifiedOn": "...",
- "name": "...",
- "used": [
- {
- "concreteType": "...",
- "wasExecuted": true
}, - {
- "concreteType": "...",
- "wasExecuted": true
}
]
}Get an existing Activity
Granted to those users who can see a single Entity that was generated by this Activity.
| id required | string The id of an Activity. |
{ }{- "createdBy": "...",
- "createdOn": "...",
- "description": "...",
- "etag": "...",
- "id": "...",
- "modifiedBy": "...",
- "modifiedOn": "...",
- "name": "...",
- "used": [
- {
- "concreteType": "...",
- "wasExecuted": true
}, - {
- "concreteType": "...",
- "wasExecuted": true
}
]
}Update an Activity
You must be the creator of the Activity to modify it.
| id required | string The id of an Activity. |
{ }{- "createdBy": "...",
- "createdOn": "...",
- "description": "...",
- "etag": "...",
- "id": "...",
- "modifiedBy": "...",
- "modifiedOn": "...",
- "name": "...",
- "used": [
- {
- "concreteType": "...",
- "wasExecuted": true
}, - {
- "concreteType": "...",
- "wasExecuted": true
}
]
}Get the Entities that were generatedBy an Activity. Returns a PaginatedResults of Reference objects.
This service will return References to all generatedBy Entities, regardless of whether you have access to resolve them into full Entity objects.
| id required | string The id of an Activity. |
| limit | integer >= 10 Default: 10 Limit of query |
| offset | integer >= 0 Default: 0 Offset of query |
{- "results": [
- {
- "targetId": "...",
- "targetVersionNumber": 12345
}, - {
- "targetId": "...",
- "targetVersionNumber": 12345
}
], - "totalNumberOfResults": 12345
}This is a generic set of services that provides support for both launching asynchronous jobs and monitoring the progress of jobs.
This method is used to launch new jobs. The type of job that will be launched is determined by the passed
AsynchronousJobBody.
The following are the currently supported job types:
Note: Each job types has different access requirements.
| concreteType | string Concrete Type |
{- "concreteType": "..."
}{- "changedOn": "...",
- "errorDetails": "...",
- "errorMessage": "...",
- "etag": "...",
- "exception": "...",
- "jobCanceling": true,
- "jobId": "...",
- "jobState": "PROCESSING",
- "progressCurrent": 12345,
- "progressMessage": "...",
- "progressTotal": 12345,
- "requestBody": {
- "concreteType": "..."
}, - "responseBody": {
- "concreteType": "..."
}, - "runtimeMS": 12345,
- "startedByUserId": 12345,
- "startedOn": "..."
}Once a job is launched its progress can be monitored by getting its status with this method.
| jobId required | string The ID of a Asynchronous Job. |
{- "changedOn": "...",
- "errorDetails": "...",
- "errorMessage": "...",
- "etag": "...",
- "exception": "...",
- "jobCanceling": true,
- "jobId": "...",
- "jobState": "PROCESSING",
- "progressCurrent": 12345,
- "progressMessage": "...",
- "progressTotal": 12345,
- "requestBody": {
- "concreteType": "..."
}, - "responseBody": {
- "concreteType": "..."
}, - "runtimeMS": 12345,
- "startedByUserId": 12345,
- "startedOn": "..."
}To become a Synapse Certified User you must pass a test. The Synapse APIs include a service to provide the test and a service to submit a test result. There are also administrative services to retrieve the history of test submissions.
Retrieve the Passing Record on the User Certification test for the given user.
| id required | string The ID of the Synapse user. |
{- "corrections": [
- {
- "isCorrect": true,
- "question": {
- "concreteType": "...",
- "docLink": "...",
- "helpText": "...",
- "prompt": "...",
- "questionIndex": 12345,
- "reference": { }
}, - "response": {
- "concreteType": "...",
- "questionIndex": 12345
}
}, - {
- "isCorrect": true,
- "question": {
- "concreteType": "...",
- "docLink": "...",
- "helpText": "...",
- "prompt": "...",
- "questionIndex": 12345,
- "reference": { }
}, - "response": {
- "concreteType": "...",
- "questionIndex": 12345
}
}
], - "passed": true,
- "passedOn": "...",
- "quizId": 12345,
- "responseId": 12345,
- "score": 12345,
- "userId": "..."
}A Challenge is a special object that supplements a project, providing additional features specific to challenges.
Create a Challenge object, associated with a Project. A participant Team must be specified. To create a Challenge one must have CREATE permission on the associated Project.
| etag | string Synapse employs an Optimistic Concurrency Control (OCC) scheme to handle concurrent updates. Since the E-Tag changes every time an entity is updated it is used to detect when a client's current representation of an entity is out-of-date. |
| projectId | string The ID of the Project the challenge is used with. |
| participantTeamId | string The ID of the Team which users join to participate in the Challenge |
| id | string The ID of this Challenge object |
{- "etag": "32439w3qsdfw",
- "projectId": "syn22222",
- "participantTeamId": "333333",
- "id": "4321"
}{- "etag": "32439w3qsdfw",
- "projectId": "syn22222",
- "participantTeamId": "333333",
- "id": "4321"
}List the Challenges for which the given participant is registered. To be in the returned list the caller must have READ permission on the project associated with the Challenge.
| participantId required | integer Synapse user id |
| limit | integer [ 10 .. 100 ] Default: 10 Maximum number of results returned |
| offset | integer >= 0 Default: 0 Index of the first result that must be returned |
{- "totalNumberOfResults": 12345,
- "results": [
- {
- "etag": "32439w3qsdfw",
- "projectId": "syn22222",
- "participantTeamId": "333333",
- "id": "4321"
}, - {
- "etag": "32439w3qsdfwasd",
- "projectId": "syn33333",
- "participantTeamId": "4444",
- "id": "4322"
}
]
}Retrieve a Challenge given its ID. To retrieve a Challenge one must have READ permission on the associated Project.
| challengeId required | integer The ID of the challenge. |
{- "etag": "32439w3qsdfw",
- "projectId": "syn22222",
- "participantTeamId": "333333",
- "id": "4321"
}Update a Challenge. The caller must have UPDATE permission on the project associated with the Challenge. It is not permitted to change the project associated with a Challenge.
| challengeId required | integer The ID of the challenge. |
| etag | string Synapse employs an Optimistic Concurrency Control (OCC) scheme to handle concurrent updates. Since the E-Tag changes every time an entity is updated it is used to detect when a client's current representation of an entity is out-of-date. |
| projectId | string The ID of the Project the challenge is used with. |
| participantTeamId | string The ID of the Team which users join to participate in the Challenge |
| id | string The ID of this Challenge object |
{- "etag": "32439w3qsdfw",
- "projectId": "syn22222",
- "participantTeamId": "333333",
- "id": "4321"
}{- "etag": "32439w3qsdfw",
- "projectId": "syn22222",
- "participantTeamId": "333333",
- "id": "4321"
}List the Teams registered for a Challenge. You must have READ permission in the associated Project to make this request.
| challengeId required | integer The ID of the challenge. |
| limit | integer [ 10 .. 100 ] Default: 10 Maximum number of results returned |
| offset | integer >= 0 Default: 0 Index of the first result that must be returned |
{- "totalNumberOfResults": 12345,
- "results": [
- {
- "id": "1111",
- "teamId": "222222",
- "challengeId": "3423",
- "message": "Testing",
- "etag": "33492273ssdf"
}, - {
- "id": "1112",
- "teamId": "222233",
- "challengeId": "3421",
- "message": "Testing foo",
- "etag": "33492273ssdddf"
}
]
}Register a Team with a Challenge. You must be a member of the Challenge's participant Team (i.e. you must be already registered for the Challenge) and be an administrator on the Team being registered.
| challengeId required | integer The ID of the challenge. |
| id | string The ID of this ChallengeTeam object |
| teamId | string The ID of the Team |
| challengeId | string The ID of the Challenge |
| message | string A descriptive message for the Team in the context of the Challenge. Limited to 500 characters. |
| etag | string Synapse employs an Optimistic Concurrency Control (OCC) scheme to handle concurrent updates. Since the E-Tag changes every time an entity is updated it is used to detect when a client's current representation of an entity is out-of-date. |
{- "id": "1111",
- "teamId": "222222",
- "challengeId": "3423",
- "message": "Testing",
- "etag": "33492273ssdf"
}{- "id": "1111",
- "teamId": "222222",
- "challengeId": "3423",
- "message": "Testing",
- "etag": "33492273ssdf"
}Update a Challenge Team. You must be a member of the Challenge's participant Team (i.e. you must be already registered for the Challenge) and be an administrator on the associated Team.
| challengeId required | integer The ID of the challenge. |
| challengeTeamId required | integer The ID of the challenge team. |
| id | string The ID of this ChallengeTeam object |
| teamId | string The ID of the Team |
| challengeId | string The ID of the Challenge |
| message | string A descriptive message for the Team in the context of the Challenge. Limited to 500 characters. |
| etag | string Synapse employs an Optimistic Concurrency Control (OCC) scheme to handle concurrent updates. Since the E-Tag changes every time an entity is updated it is used to detect when a client's current representation of an entity is out-of-date. |
{- "id": "1111",
- "teamId": "222222",
- "challengeId": "3423",
- "message": "Testing",
- "etag": "33492273ssdf"
}{- "id": "1111",
- "teamId": "222222",
- "challengeId": "3423",
- "message": "Testing",
- "etag": "33492273ssdf"
}List the participants registered for a Challenge. The caller must have READ permission on the project associated with the Challenge.
| challengeId required | integer The ID of the challenge. |
| affiliated | boolean If affiliated=true, return just participants affiliated with some registered Team. If false, return those not affiliated with any registered Team. If omitted return all participants. |
| limit | integer [ 10 .. 100 ] Default: 10 Maximum number of results returned |
| offset | integer >= 0 Default: 0 Index of the first result that must be returned |
{- "totalNumberOfResults": 12345,
- "results": [
- "test1",
- "test2"
]
}List the Teams that caller can register for the Challenge, i.e. Teams on which the caller is an administrator and which are not already registered. The caller must have READ permission on the project associated with the Challenge to make this request.
| challengeId required | integer The ID of the challenge. |
| limit | integer [ 10 .. 100 ] Default: 10 Maximum number of results returned |
| offset | integer >= 0 Default: 0 Index of the first result that must be returned |
{- "totalNumberOfResults": 12345,
- "results": [
- "test1",
- "test2"
]
}List the Teams under which the given submitter may submit to the Challenge, i.e. the Teams on which the user is a member and which are registered for the Challenge.
| challengeId required | integer The ID of the challenge. |
| limit | integer [ 10 .. 100 ] Default: 10 Maximum number of results returned |
| offset | integer >= 0 Default: 0 Index of the first result that must be returned |
{- "totalNumberOfResults": 12345,
- "results": [
- "test1",
- "test2"
]
}De-register a Team from a Challenge. You must be a member of the Challenge's participant Team (i.e. you must be already registered for the Challenge) and be an administrator on the Team being de-registered.
| challengeTeamId required | integer The ID of the challenge team. |
Retrieve a Challenge given the ID of its associated Project. To retrieve a Challenge one must have READ permission on the Project.
| id required | string Synapse Project id |
{- "etag": "32439w3qsdfw",
- "projectId": "syn22222",
- "participantTeamId": "333333",
- "id": "4321"
}Some data in Synapse are governed by an ACTAccessRequirement. To gain access to these data, a user must meet all requirements specified in the ACTAccessRequirement.
These services provide the APIs for users to create request to gain access to controlled data, and APIs for the ACT to review and grant access to users.
Return the research project info for approved data access submissions, ordered by submission modified-on date, ascending
| requirementId required | string the ID of the requirement. |
| accessRequirementId | string The ID of an AccessRequirement. |
| nextPageToken | string The token to get the next page result. |
{- "accessRequirementId": "...",
- "nextPageToken": "..."
}{- "nextPageToken": "...",
- "results": [
- {
- "institution": "...",
- "intendedDataUseStatement": "...",
- "modifiedOn": "...",
- "projectLead": "..."
}, - {
- "institution": "...",
- "intendedDataUseStatement": "...",
- "modifiedOn": "...",
- "projectLead": "..."
}
]
}Retrieve the Request for update.
If one does not exist, an Request with some re-filled information is returned. If a submission associated with the request is approved, and the requirement requires renewal, a refilled Renewal is returned. Only the owner of the request can perform this action.
| requirementId required | string the ID of the requirement. |
{- "accessRequirementId": "...",
- "accessorChanges": [
- {
- "type": "RENEW_ACCESS",
- "userId": "..."
}, - {
- "type": "RENEW_ACCESS",
- "userId": "..."
}
], - "attachments": [
- "...",
- "..."
], - "concreteType": "...",
- "createdBy": "...",
- "createdOn": 12345,
- "ducFileHandleId": "...",
- "etag": "...",
- "id": "...",
- "irbFileHandleId": "...",
- "modifiedBy": "...",
- "modifiedOn": 12345,
- "researchProjectId": "..."
}Retrieve an existing ResearchProject that the user owns.
If none exists, a ResearchProject with some re-filled information is returned to the user. Only the owner of the researchProject can perform this action.
| requirementId required | string the ID of the requirement. |
{- "accessRequirementId": "...",
- "createdBy": "...",
- "createdOn": "...",
- "etag": "...",
- "id": "...",
- "institution": "...",
- "intendedDataUseStatement": "...",
- "modifiedBy": "...",
- "modifiedOn": "...",
- "projectLead": "..."
}Retrieve an access requirement status for a given access requirement ID.
| requirementId required | string the ID of the requirement. |
{- "accessRequirementId": "...",
- "concreteType": "...",
- "expiredOn": "...",
- "isApproved": true
}Retrieve a list of submissions for a given access requirement ID.
Only ACT member can perform this action.
| requirementId required | string the ID of the requirement. |
| accessRequirementId | string The ID of an AccessRequirement. |
| filterBy | string (SubmissionState) Enum: "SUBMITTED" "APPROVED" "REJECTED" "CANCELLED" The state of a Submission. |
| isAscending | boolean If true, order the returned result in ascending order. Otherwise, order the returned result in descending order. |
| nextPageToken | string The token to get the next page result. |
| orderBy | string (SubmissionOrder) Enum: "CREATED_ON" "MODIFIED_ON" Submission Order |
{- "accessRequirementId": "...",
- "filterBy": "APPROVED",
- "isAscending": true,
- "nextPageToken": "...",
- "orderBy": "MODIFIED_ON"
}{- "nextPageToken": "...",
- "results": [
- {
- "accessRequirementId": "...",
- "accessRequirementVersion": 12345,
- "accessorChanges": [
- {
- "type": "GAIN_ACCESS",
- "userId": "..."
}, - {
- "type": "REVOKE_ACCESS",
- "userId": "..."
}
], - "attachments": [
- "...",
- "..."
], - "ducFileHandleId": "...",
- "etag": "...",
- "id": "...",
- "irbFileHandleId": "...",
- "isRenewalSubmission": true,
- "modifiedBy": "...",
- "modifiedOn": "...",
- "publication": "...",
- "rejectedReason": "...",
- "requestId": "...",
- "researchProjectSnapshot": {
- "accessRequirementId": "...",
- "createdBy": "...",
- "createdOn": "...",
- "etag": "...",
- "id": "...",
- "institution": "...",
- "intendedDataUseStatement": "...",
- "modifiedBy": "...",
- "modifiedOn": "...",
- "projectLead": "..."
}, - "state": "REJECTED",
- "subjectId": "...",
- "subjectType": "EVALUATION",
- "submittedBy": "...",
- "submittedOn": "...",
- "summaryOfUse": "..."
}, - {
- "accessRequirementId": "...",
- "accessRequirementVersion": 12345,
- "accessorChanges": [
- {
- "type": "GAIN_ACCESS",
- "userId": "..."
}, - {
- "type": "RENEW_ACCESS",
- "userId": "..."
}
], - "attachments": [
- "...",
- "..."
], - "ducFileHandleId": "...",
- "etag": "...",
- "id": "...",
- "irbFileHandleId": "...",
- "isRenewalSubmission": true,
- "modifiedBy": "...",
- "modifiedOn": "...",
- "publication": "...",
- "rejectedReason": "...",
- "requestId": "...",
- "researchProjectSnapshot": {
- "accessRequirementId": "...",
- "createdBy": "...",
- "createdOn": "...",
- "etag": "...",
- "id": "...",
- "institution": "...",
- "intendedDataUseStatement": "...",
- "modifiedBy": "...",
- "modifiedOn": "...",
- "projectLead": "..."
}, - "state": "APPROVED",
- "subjectId": "...",
- "subjectType": "ENTITY",
- "submittedBy": "...",
- "submittedOn": "...",
- "summaryOfUse": "..."
}
]
}Discussions in Synapse are captured in the Project's Forum. Each Project has a Forum. Each Forum has a set of Moderators. The Moderators manage the content of the Forum.
This API is used to get N number of threads that belongs to projects user can view and references the given entity.
Target users: anyone who has READ permission to the entity.
| id required | string The ID of an Entity. |
| ascending | boolean The direction of sort: true for ascending, and false for descending |
| limit | number [ 10 .. 20 ] Default: 10 Limits the size of the page returned. For example, a page size of 10 require limit = 10. The maximum Limit for this call is 20.' |
| offset | number >= 0 Default: 0 The index of the pagination offset. For a page size of 10, the first page would be at offset = 0, and the second page would be at offset = 10.' |
| sort | string Enum: "NUMBER_OF_REPLIES" "NUMBER_OF_VIEWS" "PINNED_AND_LAST_ACTIVITY" "THREAD_TITLE" The field to sort the resulting threads on. Available options DiscussionThreadOrder |
{- "results": [
- {
- "activeAuthors": [
- "...",
- "..."
], - "createdBy": "...",
- "createdOn": "...",
- "etag": "...",
- "forumId": "...",
- "id": "...",
- "isDeleted": true,
- "isEdited": true,
- "isPinned": true,
- "lastActivity": "...",
- "messageKey": "...",
- "modifiedOn": "...",
- "numberOfReplies": 12345,
- "numberOfViews": 12345,
- "projectId": "...",
- "title": "..."
}, - {
- "activeAuthors": [
- "...",
- "..."
], - "createdBy": "...",
- "createdOn": "...",
- "etag": "...",
- "forumId": "...",
- "id": "...",
- "isDeleted": true,
- "isEdited": true,
- "isPinned": true,
- "lastActivity": "...",
- "messageKey": "...",
- "modifiedOn": "...",
- "numberOfReplies": 12345,
- "numberOfViews": 12345,
- "projectId": "...",
- "title": "..."
}
], - "totalNumberOfResults": 12345
}This API is used to get list of entity and count pairs, with count is the number of threads that belong to projects user can view and references the given entity.
Target users: anyone who has READ permission to the project.
The requested list. Limit size 20.
| idList | Array of strings List of Entity Ids |
{- "idList": [
- "...",
- "..."
]
}{- "list": [
- {
- "count": 12345,
- "entityId": "..."
}, - {
- "count": 12345,
- "entityId": "..."
}
]
}This API is used to get the Forum''s metadata for a given its ID.
Target users: anyone who has READ permission to the project.'
| forumId required | string The ID of the Forum. |
{- "etag": "...",
- "id": "...",
- "projectId": "..."
}Returns a page of moderators for a given forum ID.
Target users: anyone who has READ permission to the project.
| forumId required | string The ID of the Forum. |
| limit | integer [ 10 .. 100 ] Default: 10 Limits the size of the page returned. |
| offset | integer >= 0 Default: 0 The index of the pagination offset. For a page size of 10, the first page would be at offset = 0, and the second page would be at offset = 10.' |
{- "totalNumberOfResults": 12345,
- "results": [
- "test1",
- "test2"
]
}This API is used to get the total number of threads for a given forum ID.
Target users: anyone who has READ permission to the project.
| forumId required | string The ID of the Forum. |
| filter | string Enum: "DELETED_ONLY" "EXCLUDE_DELETED" "NO_FILTER" Filter deleted or not deleted threads. |
{- "count": 12345
}This API is used to get N number of threads for a given forum ID.
Target users: anyone who has READ permission to the project.'
| forumId required | string The ID of a Forum. |
| ascending | boolean The direction of sort: true for ascending, and false for descending |
| filter | string Enum: "DELETED_ONLY" "EXCLUDE_DELETED" "NO_FILTER" Filter deleted or not deleted threads. |
| limit | integer [ 10 .. 20 ] Default: 10 Limits the size of the page returned. For example, a page size of 10 require limit = 10. |
| offset | number >= 0 Default: 0
|
| sort | string Enum: "NUMBER_OF_REPLIES" "NUMBER_OF_VIEWS" "PINNED_AND_LAST_ACTIVITY" "THREAD_TITLE" The field to sort the resulting threads on. |
{- "results": [
- {
- "activeAuthors": [
- "...",
- "..."
], - "createdBy": "...",
- "createdOn": "...",
- "etag": "...",
- "forumId": "...",
- "id": "...",
- "isDeleted": true,
- "isEdited": true,
- "isPinned": true,
- "lastActivity": "...",
- "messageKey": "...",
- "modifiedOn": "...",
- "numberOfReplies": 12345,
- "numberOfViews": 12345,
- "projectId": "...",
- "title": "..."
}, - {
- "activeAuthors": [
- "...",
- "..."
], - "createdBy": "...",
- "createdOn": "...",
- "etag": "...",
- "forumId": "...",
- "id": "...",
- "isDeleted": true,
- "isEdited": true,
- "isPinned": true,
- "lastActivity": "...",
- "messageKey": "...",
- "modifiedOn": "...",
- "numberOfReplies": 12345,
- "numberOfViews": 12345,
- "projectId": "...",
- "title": "..."
}
], - "totalNumberOfResults": 12345
}This API is used to get the Forum's metadata for a given project ID.
Target users: anyone who has READ permission to the project.'
| projectId required | string The ID of a Project. |
{- "etag": "...",
- "id": "...",
- "projectId": "..."
}This API is used to create a new reply to a thread.
Target users: anyone who has READ permission to the project.
| messageMarkdown | string The markdown of the Reply's message |
| threadId | string The ID of the thread this Reply belongs to |
{- "messageMarkdown": "...",
- "threadId": "..."
}{- "createdBy": "...",
- "createdOn": "...",
- "etag": "...",
- "forumId": "...",
- "id": "...",
- "isDeleted": true,
- "isEdited": true,
- "messageKey": "...",
- "modifiedOn": "...",
- "projectId": "...",
- "threadId": "..."
}This API is used to get a reply and its statistic given its ID.
Target users: anyone who has READ permission to the project.
| replyId required | string The ID of the Reply. |
{- "createdBy": "...",
- "createdOn": "...",
- "etag": "...",
- "forumId": "...",
- "id": "...",
- "isDeleted": true,
- "isEdited": true,
- "messageKey": "...",
- "modifiedOn": "...",
- "projectId": "...",
- "threadId": "..."
}This API is used to update the message of a reply.
Target users: only the author of the reply can update its message.'
| replyId required | string The ID of the Reply. |
| messageMarkdown | string The new message markdown |
{- "messageMarkdown": "..."
}{- "createdBy": "...",
- "createdOn": "...",
- "etag": "...",
- "forumId": "...",
- "id": "...",
- "isDeleted": true,
- "isEdited": true,
- "messageKey": "...",
- "modifiedOn": "...",
- "projectId": "...",
- "threadId": "..."
}This API is used to get the message URL of a reply. The message URL is the URL to download the file which contains the reply message.
Target users: anyone who has READ permission to the project. The resulting URL will be signed with Content-Type ="text/plain; charset=utf-8"; therefore, this header must be included with the GET on the URL.
| messageKey required | string DiscussionReplyBundle.messageKey |
{- "messageUrl": "..."
}This API is used to create a new thread in a forum.
Target users: anyone who has READ permission to the project.
| forumId | string The ID of the forum this CreateThread belongs to |
| messageMarkdown | string The markdown of the Thread's message |
| title | string The title of the Thread |
{- "forumId": "...",
- "messageMarkdown": "...",
- "title": "..."
}{- "activeAuthors": [
- "...",
- "..."
], - "createdBy": "...",
- "createdOn": "...",
- "etag": "...",
- "forumId": "...",
- "id": "...",
- "isDeleted": true,
- "isEdited": true,
- "isPinned": true,
- "lastActivity": "...",
- "messageKey": "...",
- "modifiedOn": "...",
- "numberOfReplies": 12345,
- "numberOfViews": 12345,
- "projectId": "...",
- "title": "..."
}This API is used to get a thread and its statistic given its ID.
Target users: anyone who has READ permission to the project.
| threadId required | string The ID of a thread. |
{- "activeAuthors": [
- "...",
- "..."
], - "createdBy": "...",
- "createdOn": "...",
- "etag": "...",
- "forumId": "...",
- "id": "...",
- "isDeleted": true,
- "isEdited": true,
- "isPinned": true,
- "lastActivity": "...",
- "messageKey": "...",
- "modifiedOn": "...",
- "numberOfReplies": 12345,
- "numberOfViews": 12345,
- "projectId": "...",
- "title": "..."
}This API is used to update the message of a thread.
Target users: only the author of the thread can update its message.'
| threadId required | string The ID of a thread. |
| messageMarkdown | string The new message markdown |
{- "messageMarkdown": "..."
}{- "activeAuthors": [
- "...",
- "..."
], - "createdBy": "...",
- "createdOn": "...",
- "etag": "...",
- "forumId": "...",
- "id": "...",
- "isDeleted": true,
- "isEdited": true,
- "isPinned": true,
- "lastActivity": "...",
- "messageKey": "...",
- "modifiedOn": "...",
- "numberOfReplies": 12345,
- "numberOfViews": 12345,
- "projectId": "...",
- "title": "..."
}This API is used to get N number of replies for a given thread ID.
Target users: anyone who has READ permission to the project.
| threadId required | string The ID of a thread. |
| ascending | boolean The direction of sort: true for ascending, and false for descending |
| filter required | string Enum: "DELETED_ONLY" "EXCLUDE_DELETED" "NO_FILTER" Filter deleted not deleted replies. |
| limit | integer [ 0 .. 100 ] Default: 10 Limits the size of the page returned. For example, a page size of 10 require limit = 10. |
| offset | integer >= 0 Default: 0 The index of the pagination offset. For a page size of 10, the first page would be at offset = 0, and the second page would be at offset = 10.' |
| sort | string Value: "CREATED_ON" The field to sort the resulting replies on. |
{- "results": [
- {
- "createdBy": "...",
- "createdOn": "...",
- "etag": "...",
- "forumId": "...",
- "id": "...",
- "isDeleted": true,
- "isEdited": true,
- "messageKey": "...",
- "modifiedOn": "...",
- "projectId": "...",
- "threadId": "..."
}, - {
- "createdBy": "...",
- "createdOn": "...",
- "etag": "...",
- "forumId": "...",
- "id": "...",
- "isDeleted": true,
- "isEdited": true,
- "messageKey": "...",
- "modifiedOn": "...",
- "projectId": "...",
- "threadId": "..."
}
], - "totalNumberOfResults": 12345
}This API is used to get the total number of replies for a given thread ID.
Target users: anyone who has READ permission to the project.'
| threadId required | string The ID of a thread. |
| filter required | string Enum: "DELETED_ONLY" "EXCLUDE_DELETED" "NO_FILTER" Filter deleted not deleted replies. |
{- "count": 12345
}This API is used to update the title of a thread.
Target users: only the author of the thread can update its title.'
| threadId required | string The ID of a thread. |
| title | string New Thread Title |
{- "title": "..."
}{- "activeAuthors": [
- "...",
- "..."
], - "createdBy": "...",
- "createdOn": "...",
- "etag": "...",
- "forumId": "...",
- "id": "...",
- "isDeleted": true,
- "isEdited": true,
- "isPinned": true,
- "lastActivity": "...",
- "messageKey": "...",
- "modifiedOn": "...",
- "numberOfReplies": 12345,
- "numberOfViews": 12345,
- "projectId": "...",
- "title": "..."
}This API is used to get the message URL of a thread. The message URL is the URL to download the file which contains the thread message.
Target users: anyone who has READ permission to the project.
The resulting URL will be signed with Content-Type ="text/plain; charset=utf-8"; therefore, this header must be included with the GET on the URL.
| messageKey required | string Message Key |
{- "messageUrl": "..."
}These services relate to the 'commits' to Docker repositories. Note that create, update and delete of the Docker repositories themselves are done using the Entity Services, for external/unmanaged repositories, or by direct integration with the Docker registry, for managed Docker repositories. Tagged commits for both managed and external/unmanaged repositories may be retrieved using the 'listDockerTags' API included in this service.
Add a commit (tag and digest) for an external/unmanaged Docker repository. (Commits for managed repositories are added via direct integration with the Synapse Docker registry.)
| id required | string the ID of the Docker repository entity |
the new tag/digest pair for the repository
| createdOn | string The date this commit was created. |
| digest | string A unique id for the commit, generated by hashing its content. |
| tag | string A user supplied name for a specific version of a repository. |
{- "createdOn": "...",
- "digest": "...",
- "tag": "..."
}List the tagged commits (tag/digest pairs) for the given Docker repository. Only the most recent digest for each tag is returned since, following Docker's convention, a tag may be reassigned to a newer commit. The list may be sorted by date or tag. The default is to sort by date, descending (newest first).'
| id required | string the ID of the Docker repository entity |
| ascending | boolean Default: false Ascending |
| limit | integer >= 0 Default: 20 pagination parameter, optional (default is 20) |
| offset | integer >= 0 Default: 0 pagination parameter, optional (default is 0) |
| sort | string Sort results |
{- "results": [
- {
- "createdOn": "...",
- "digest": "...",
- "tag": "..."
}, - {
- "createdOn": "...",
- "digest": "...",
- "tag": "..."
}
], - "totalNumberOfResults": 12345
}Retrieves the DOI for the object and its associated DOI metadata. Note: this call calls an external API, which may impact performance To just retrieve the DOI association, see: GET /doi/association
| id required | string The ID of the object to retrieve |
| type required | string (ObjectType) Enum: "ENTITY" "ENTITY_CONTAINER" "PRINCIPAL" "ACTIVITY" "EVALUATION" "EVALUATION_ROUND" "SUBMISSION" "EVALUATION_SUBMISSIONS" "FILE" "MESSAGE" "WIKI" "FAVORITE" "ACCESS_REQUIREMENT" "ACCESS_APPROVAL" "TEAM" "TABLE" "ACCESS_CONTROL_LIST" "PROJECT_SETTING" "VERIFICATION_SUBMISSION" "CERTIFIED_USER_PASSING_RECORD" "FORUM" "THREAD" "REPLY" "FORM_GROUP" "ORGANIZATION" "FORM_DATA" "ENTITY_VIEW" "USER_PROFILE" "DATA_ACCESS_REQUEST" "DATA_ACCESS_SUBMISSION" "DATA_ACCESS_SUBMISSION_STATUS" "MEMBERSHIP_INVITATION" The type of the object |
| version | integer The version number of the object |
{- "associatedBy": "...",
- "associatedOn": "...",
- "associationId": "...",
- "doiUri": "...",
- "doiUrl": "...",
- "etag": "...",
- "objectId": "Doi",
- "objectType": "WIKI",
- "objectVersion": 12345,
- "updatedBy": "...",
- "updatedOn": "...",
- "creators": [
- {
- "creatorName": "...",
- "nameIdentifiers": [
- {
- "identifier": "...",
- "nameIdentifierScheme": "ISNI"
}, - {
- "identifier": "...",
- "nameIdentifierScheme": "ORCID"
}
]
}
], - "publicationYear": 0,
- "resourceType": {
- "resourceTypeGeneral": "Image"
}, - "titles": [
- {
- "title": "..."
}
]
}Retrieves the DOI for the object. Note: this call only retrieves the DOI association, if it exists. To retrieve the metadata for the object, see GET /doi'
| id required | string The ID of the object to retrieve |
| type required | string (ObjectType) Enum: "ENTITY" "ENTITY_CONTAINER" "PRINCIPAL" "ACTIVITY" "EVALUATION" "EVALUATION_ROUND" "SUBMISSION" "EVALUATION_SUBMISSIONS" "FILE" "MESSAGE" "WIKI" "FAVORITE" "ACCESS_REQUIREMENT" "ACCESS_APPROVAL" "TEAM" "TABLE" "ACCESS_CONTROL_LIST" "PROJECT_SETTING" "VERIFICATION_SUBMISSION" "CERTIFIED_USER_PASSING_RECORD" "FORUM" "THREAD" "REPLY" "FORM_GROUP" "ORGANIZATION" "FORM_DATA" "ENTITY_VIEW" "USER_PROFILE" "DATA_ACCESS_REQUEST" "DATA_ACCESS_SUBMISSION" "DATA_ACCESS_SUBMISSION_STATUS" "MEMBERSHIP_INVITATION" The type of the object |
| version | integer The version number of the object |
{- "associatedBy": "...",
- "associatedOn": "...",
- "associationId": "...",
- "doiUri": "...",
- "doiUrl": "...",
- "etag": "...",
- "objectId": "Doi",
- "objectType": "WIKI",
- "objectVersion": 12345,
- "updatedBy": "...",
- "updatedOn": "...",
- "creators": [
- {
- "creatorName": "...",
- "nameIdentifiers": [
- {
- "identifier": "...",
- "nameIdentifierScheme": "ISNI"
}, - {
- "identifier": "...",
- "nameIdentifierScheme": "ORCID"
}
]
}
], - "publicationYear": 0,
- "resourceType": {
- "resourceTypeGeneral": "Image"
}, - "titles": [
- {
- "title": "..."
}
]
}Asynchronously creates or updates a DOI in Synapse, with input metadata. Retrieve the results with GET /doi/async/get/{asyncToken}. This call may fail if the external DataCite API is down. If the failure is recoverable, it will retry automatically.'
A request containing a DOI and its metadata to associate with a Synapse object
| concreteType | string concrete type |
object (Doi) JSON schema for fields associated with a DOI and its metadata. |
{- "concreteType": "...",
- "doi": {
- "associatedBy": "...",
- "associatedOn": "...",
- "associationId": "...",
- "creators": [
- {
- "creatorName": "...",
- "nameIdentifiers": [
- {
- "identifier": "...",
- "nameIdentifierScheme": "ORCID"
}
]
}, - {
- "creatorName": "...",
- "nameIdentifiers": [
- {
- "identifier": "...",
- "nameIdentifierScheme": "ORCID"
}
]
}
], - "doiUri": "...",
- "doiUrl": "...",
- "etag": "...",
- "objectId": "...",
- "objectType": "FORUM",
- "objectVersion": 12345,
- "publicationYear": 12345,
- "resourceType": {
- "resourceTypeGeneral": "Dataset"
}, - "titles": [
- {
- "title": "..."
}, - {
- "title": "..."
}
], - "updatedBy": "...",
- "updatedOn": "..."
}
}{- "token": "..."
}Get the results of a call to POST /doi/async/start
| asyncToken required | string The async job token from the create/update call |
{- "concreteType": "...",
- "doi": {
- "associatedBy": "...",
- "associatedOn": "...",
- "associationId": "...",
- "creators": [
- {
- "creatorName": "...",
- "nameIdentifiers": [
- {
- "identifier": "...",
- "nameIdentifierScheme": "ORCID"
}, - {
- "identifier": "...",
- "nameIdentifierScheme": "ORCID"
}
]
}, - {
- "creatorName": "...",
- "nameIdentifiers": [
- {
- "identifier": "...",
- "nameIdentifierScheme": "ORCID"
}
]
}
], - "doiUri": "...",
- "doiUrl": "...",
- "etag": "...",
- "objectId": "...",
- "objectType": "FORM_GROUP",
- "objectVersion": 12345,
- "publicationYear": 12345,
- "resourceType": {
- "resourceTypeGeneral": "Sound"
}, - "titles": [
- {
- "title": "..."
}, - {
- "title": "..."
}
], - "updatedBy": "...",
- "updatedOn": "..."
}
}Retrieves the Synapse web portal URL to the object entered. Note: This call does not check to see if the object exists in Synapse.
| id required | string The ID of the object to retrieve |
| redirect | boolean Default: true Whether to return the URL or redirect to the URL |
| type required | string (ObjectType) Enum: "ENTITY" "ENTITY_CONTAINER" "PRINCIPAL" "ACTIVITY" "EVALUATION" "EVALUATION_ROUND" "SUBMISSION" "EVALUATION_SUBMISSIONS" "FILE" "MESSAGE" "WIKI" "FAVORITE" "ACCESS_REQUIREMENT" "ACCESS_APPROVAL" "TEAM" "TABLE" "ACCESS_CONTROL_LIST" "PROJECT_SETTING" "VERIFICATION_SUBMISSION" "CERTIFIED_USER_PASSING_RECORD" "FORUM" "THREAD" "REPLY" "FORM_GROUP" "ORGANIZATION" "FORM_DATA" "ENTITY_VIEW" "USER_PROFILE" "DATA_ACCESS_REQUEST" "DATA_ACCESS_SUBMISSION" "DATA_ACCESS_SUBMISSION_STATUS" "MEMBERSHIP_INVITATION" The type of the object |
| version | integer The version number of the object |
"string"The Entity Bundle Services provide bundled access to Entities and their related data components. An EntityBundle can be used to create, fetch, or update an Entity and associated objects with a single web service request.
Get an entity and related data with a single POST.
| id required | string The ID of an Entity. |
| includeAccessControlList | boolean Include the AccessControlList for this Entity |
| includeAnnotations | boolean Include Annotations associated with the Entity in the response. |
| includeBenefactorACL | boolean Include the ACL of the Entity from which this Entity inherits its AccessControlList |
| includeDOIAssociation | boolean Include DOIs associated with this Entity |
| includeEntity | boolean Include the Entity in the response. |
| includeEntityPath | boolean Include EntityHeaders for all Entities in this Entity's path |
| includeFileHandles | boolean Include all FileHandles associated with this Entity. |
| includeFileName | boolean If this Entity is a FileEntity, include its filename |
| includeHasChildren | boolean Include boolean indicating whether this Entity has children |
| includePermissions | boolean Include permissions of the current user on the entity. |
| includeRestrictionInformation | boolean Include the RestrictionLevel of this Entity |
| includeRootWikiId | boolean Include the id of the root Wiki associated with this Entity |
| includeTableBundle | boolean If the Entity is a TableEntity, include Table specific metadata. |
| includeThreadCount | boolean Include the number of discussion threads that mention this Entity |
{- "includeAccessControlList": true,
- "includeAnnotations": true,
- "includeBenefactorACL": true,
- "includeDOIAssociation": true,
- "includeEntity": true,
- "includeEntityPath": true,
- "includeFileHandles": true,
- "includeFileName": true,
- "includeHasChildren": true,
- "includePermissions": true,
- "includeRestrictionInformation": true,
- "includeRootWikiId": true,
- "includeTableBundle": true,
- "includeThreadCount": true
}{- "accessControlList": {
- "createdBy": "...",
- "creationDate": "...",
- "etag": "...",
- "id": "...",
- "modifiedBy": "...",
- "modifiedOn": "...",
- "resourceAccess": [
- {
- "accessType": [
- "CHANGE_PERMISSIONS",
- "UPDATE_SUBMISSION"
], - "principalId": 12345
}, - {
- "accessType": [
- "DOWNLOAD",
- "MODERATE"
], - "principalId": 12345
}
]
}, - "annotations": {
- "annotations": {
- "property1": {
- "type": "STRING",
- "value": [
- "...",
- "..."
]
}, - "property2": {
- "type": "TIMESTAMP_MS",
- "value": [
- "...",
- "..."
]
}
}, - "etag": "...",
- "id": "..."
}, - "benefactorAcl": {
- "createdBy": "...",
- "creationDate": "...",
- "etag": "...",
- "id": "...",
- "modifiedBy": "...",
- "modifiedOn": "...",
- "resourceAccess": [
- {
- "accessType": [
- "UPLOAD",
- "DELETE"
], - "principalId": 12345
}, - {
- "accessType": [
- "CHANGE_SETTINGS",
- "CREATE"
], - "principalId": 12345
}
]
}, - "doiAssociation": {
- "associatedBy": "...",
- "associatedOn": "...",
- "associationId": "...",
- "doiUri": "...",
- "doiUrl": "...",
- "etag": "...",
- "objectId": "...",
- "objectType": "VERIFICATION_SUBMISSION",
- "objectVersion": 12345,
- "updatedBy": "...",
- "updatedOn": "..."
}, - "entity": {
- "concreteType": "...",
- "createdBy": "...",
- "createdOn": "...",
- "description": "...",
- "etag": "...",
- "id": "...",
- "modifiedBy": "...",
- "modifiedOn": "...",
- "name": "...",
- "parentId": "..."
}, - "entityType": "entityview",
- "fileHandles": [
- {
- "concreteType": "...",
- "contentMd5": "...",
- "contentSize": 12345,
- "contentType": "...",
- "createdBy": "...",
- "createdOn": "...",
- "etag": "...",
- "fileName": "...",
- "id": "...",
- "storageLocationId": 12345
}, - {
- "concreteType": "...",
- "contentMd5": "...",
- "contentSize": 12345,
- "contentType": "...",
- "createdBy": "...",
- "createdOn": "...",
- "etag": "...",
- "fileName": "...",
- "id": "...",
- "storageLocationId": 12345
}
], - "fileName": "...",
- "hasChildren": true,
- "path": {
- "path": [
- {
- "benefactorId": 12345,
- "createdBy": "...",
- "createdOn": "...",
- "id": "...",
- "modifiedBy": "...",
- "modifiedOn": "...",
- "name": "...",
- "type": "...",
- "versionLabel": "...",
- "versionNumber": 12345
}, - {
- "benefactorId": 12345,
- "createdBy": "...",
- "createdOn": "...",
- "id": "...",
- "modifiedBy": "...",
- "modifiedOn": "...",
- "name": "...",
- "type": "...",
- "versionLabel": "...",
- "versionNumber": 12345
}
]
}, - "permissions": {
- "canAddChild": true,
- "canCertifiedUserAddChild": true,
- "canCertifiedUserEdit": true,
- "canChangePermissions": true,
- "canChangeSettings": true,
- "canDelete": true,
- "canDownload": true,
- "canEdit": true,
- "canEnableInheritance": true,
- "canModerate": true,
- "canPublicRead": true,
- "canUpload": true,
- "canView": true,
- "isCertificationRequired": true,
- "isCertifiedUser": true,
- "ownerPrincipalId": 12345
}, - "restrictionInformation": {
- "hasUnmetAccessRequirement": true,
- "restrictionLevel": "RESTRICTED_BY_TERMS_OF_USE"
}, - "rootWikiId": "...",
- "tableBundle": {
- "columnModels": [
- {
- "columnType": "STRING",
- "defaultValue": "...",
- "enumValues": [
- "...",
- "..."
], - "facetType": "enumeration",
- "id": "...",
- "maximumListLength": 100,
- "maximumSize": 12345,
- "name": "..."
}, - {
- "columnType": "USERID_LIST",
- "defaultValue": "...",
- "enumValues": [
- "...",
- "..."
], - "facetType": "range",
- "id": "...",
- "maximumListLength": 100,
- "maximumSize": 12345,
- "name": "..."
}
], - "maxRowsPerPage": 12345
}, - "threadCount": 12345
}Update an entity and associated components with a single PUT. Specifically, this operation supports update of an Entity, its Annotations, and its ACL. Upon successful creation, an EntityBundle is returned containing the requested components, as defined by the partsMask in the request object.
| id required | string The ID of an Entity. |
| generatedBy | string Generated by |
The EntityBundleCreate object containing the Entity and Annotations to update.
object (AccessControlList) Contains list of principals who can access the data with the allowed types of access for each. | |
object (Annotations) Annotations are additional key-value pair metadata that are associated with an object. | |
object (Entity) This is the base interface that all Entities implement. |
{- "accessControlList": {
- "createdBy": "...",
- "creationDate": "...",
- "etag": "...",
- "id": "...",
- "modifiedBy": "...",
- "modifiedOn": "...",
- "resourceAccess": [
- {
- "accessType": [
- "PARTICIPATE",
- "UPDATE_SUBMISSION"
], - "principalId": 12345
}, - {
- "accessType": [
- "DELETE",
- "UPLOAD"
], - "principalId": 12345
}
]
}, - "annotations": {
- "annotations": {
- "property1": {
- "type": "STRING",
- "value": [
- "...",
- "..."
]
}, - "property2": {
- "type": "STRING",
- "value": [
- "...",
- "..."
]
}
}, - "etag": "...",
- "id": "..."
}, - "entity": {
- "concreteType": "...",
- "createdBy": "...",
- "createdOn": "...",
- "description": "...",
- "etag": "...",
- "id": "...",
- "modifiedBy": "...",
- "modifiedOn": "...",
- "name": "...",
- "parentId": "..."
}
}{- "accessControlList": {
- "createdBy": "...",
- "creationDate": "...",
- "etag": "...",
- "id": "...",
- "modifiedBy": "...",
- "modifiedOn": "...",
- "resourceAccess": [
- {
- "accessType": [
- "CHANGE_PERMISSIONS",
- "UPDATE_SUBMISSION"
], - "principalId": 12345
}, - {
- "accessType": [
- "DOWNLOAD",
- "MODERATE"
], - "principalId": 12345
}
]
}, - "annotations": {
- "annotations": {
- "property1": {
- "type": "STRING",
- "value": [
- "...",
- "..."
]
}, - "property2": {
- "type": "TIMESTAMP_MS",
- "value": [
- "...",
- "..."
]
}
}, - "etag": "...",
- "id": "..."
}, - "benefactorAcl": {
- "createdBy": "...",
- "creationDate": "...",
- "etag": "...",
- "id": "...",
- "modifiedBy": "...",
- "modifiedOn": "...",
- "resourceAccess": [
- {
- "accessType": [
- "UPLOAD",
- "DELETE"
], - "principalId": 12345
}, - {
- "accessType": [
- "CHANGE_SETTINGS",
- "CREATE"
], - "principalId": 12345
}
]
}, - "doiAssociation": {
- "associatedBy": "...",
- "associatedOn": "...",
- "associationId": "...",
- "doiUri": "...",
- "doiUrl": "...",
- "etag": "...",
- "objectId": "...",
- "objectType": "VERIFICATION_SUBMISSION",
- "objectVersion": 12345,
- "updatedBy": "...",
- "updatedOn": "..."
}, - "entity": {
- "concreteType": "...",
- "createdBy": "...",
- "createdOn": "...",
- "description": "...",
- "etag": "...",
- "id": "...",
- "modifiedBy": "...",
- "modifiedOn": "...",
- "name": "...",
- "parentId": "..."
}, - "entityType": "entityview",
- "fileHandles": [
- {
- "concreteType": "...",
- "contentMd5": "...",
- "contentSize": 12345,
- "contentType": "...",
- "createdBy": "...",
- "createdOn": "...",
- "etag": "...",
- "fileName": "...",
- "id": "...",
- "storageLocationId": 12345
}, - {
- "concreteType": "...",
- "contentMd5": "...",
- "contentSize": 12345,
- "contentType": "...",
- "createdBy": "...",
- "createdOn": "...",
- "etag": "...",
- "fileName": "...",
- "id": "...",
- "storageLocationId": 12345
}
], - "fileName": "...",
- "hasChildren": true,
- "path": {
- "path": [
- {
- "benefactorId": 12345,
- "createdBy": "...",
- "createdOn": "...",
- "id": "...",
- "modifiedBy": "...",
- "modifiedOn": "...",
- "name": "...",
- "type": "...",
- "versionLabel": "...",
- "versionNumber": 12345
}, - {
- "benefactorId": 12345,
- "createdBy": "...",
- "createdOn": "...",
- "id": "...",
- "modifiedBy": "...",
- "modifiedOn": "...",
- "name": "...",
- "type": "...",
- "versionLabel": "...",
- "versionNumber": 12345
}
]
}, - "permissions": {
- "canAddChild": true,
- "canCertifiedUserAddChild": true,
- "canCertifiedUserEdit": true,
- "canChangePermissions": true,
- "canChangeSettings": true,
- "canDelete": true,
- "canDownload": true,
- "canEdit": true,
- "canEnableInheritance": true,
- "canModerate": true,
- "canPublicRead": true,
- "canUpload": true,
- "canView": true,
- "isCertificationRequired": true,
- "isCertifiedUser": true,
- "ownerPrincipalId": 12345
}, - "restrictionInformation": {
- "hasUnmetAccessRequirement": true,
- "restrictionLevel": "RESTRICTED_BY_TERMS_OF_USE"
}, - "rootWikiId": "...",
- "tableBundle": {
- "columnModels": [
- {
- "columnType": "STRING",
- "defaultValue": "...",
- "enumValues": [
- "...",
- "..."
], - "facetType": "enumeration",
- "id": "...",
- "maximumListLength": 100,
- "maximumSize": 12345,
- "name": "..."
}, - {
- "columnType": "USERID_LIST",
- "defaultValue": "...",
- "enumValues": [
- "...",
- "..."
], - "facetType": "range",
- "id": "...",
- "maximumListLength": 100,
- "maximumSize": 12345,
- "name": "..."
}
], - "maxRowsPerPage": 12345
}, - "threadCount": 12345
}Get an entity at a specific version and its related data with a single POST.
| id required | string The ID of the Entity. |
| versionNumber required | integer The version number of the Entity. |
| includeAccessControlList | boolean Include the AccessControlList for this Entity |
| includeAnnotations | boolean Include Annotations associated with the Entity in the response. |
| includeBenefactorACL | boolean Include the ACL of the Entity from which this Entity inherits its AccessControlList |
| includeDOIAssociation | boolean Include DOIs associated with this Entity |
| includeEntity | boolean Include the Entity in the response. |
| includeEntityPath | boolean Include EntityHeaders for all Entities in this Entity's path |
| includeFileHandles | boolean Include all FileHandles associated with this Entity. |
| includeFileName | boolean If this Entity is a FileEntity, include its filename |
| includeHasChildren | boolean Include boolean indicating whether this Entity has children |
| includePermissions | boolean Include permissions of the current user on the entity. |
| includeRestrictionInformation | boolean Include the RestrictionLevel of this Entity |
| includeRootWikiId | boolean Include the id of the root Wiki associated with this Entity |
| includeTableBundle | boolean If the Entity is a TableEntity, include Table specific metadata. |
| includeThreadCount | boolean Include the number of discussion threads that mention this Entity |
{- "includeAccessControlList": true,
- "includeAnnotations": true,
- "includeBenefactorACL": true,
- "includeDOIAssociation": true,
- "includeEntity": true,
- "includeEntityPath": true,
- "includeFileHandles": true,
- "includeFileName": true,
- "includeHasChildren": true,
- "includePermissions": true,
- "includeRestrictionInformation": true,
- "includeRootWikiId": true,
- "includeTableBundle": true,
- "includeThreadCount": true
}{- "accessControlList": {
- "createdBy": "...",
- "creationDate": "...",
- "etag": "...",
- "id": "...",
- "modifiedBy": "...",
- "modifiedOn": "...",
- "resourceAccess": [
- {
- "accessType": [
- "CHANGE_PERMISSIONS",
- "UPDATE_SUBMISSION"
], - "principalId": 12345
}, - {
- "accessType": [
- "DOWNLOAD",
- "MODERATE"
], - "principalId": 12345
}
]
}, - "annotations": {
- "annotations": {
- "property1": {
- "type": "STRING",
- "value": [
- "...",
- "..."
]
}, - "property2": {
- "type": "TIMESTAMP_MS",
- "value": [
- "...",
- "..."
]
}
}, - "etag": "...",
- "id": "..."
}, - "benefactorAcl": {
- "createdBy": "...",
- "creationDate": "...",
- "etag": "...",
- "id": "...",
- "modifiedBy": "...",
- "modifiedOn": "...",
- "resourceAccess": [
- {
- "accessType": [
- "UPLOAD",
- "DELETE"
], - "principalId": 12345
}, - {
- "accessType": [
- "CHANGE_SETTINGS",
- "CREATE"
], - "principalId": 12345
}
]
}, - "doiAssociation": {
- "associatedBy": "...",
- "associatedOn": "...",
- "associationId": "...",
- "doiUri": "...",
- "doiUrl": "...",
- "etag": "...",
- "objectId": "...",
- "objectType": "VERIFICATION_SUBMISSION",
- "objectVersion": 12345,
- "updatedBy": "...",
- "updatedOn": "..."
}, - "entity": {
- "concreteType": "...",
- "createdBy": "...",
- "createdOn": "...",
- "description": "...",
- "etag": "...",
- "id": "...",
- "modifiedBy": "...",
- "modifiedOn": "...",
- "name": "...",
- "parentId": "..."
}, - "entityType": "entityview",
- "fileHandles": [
- {
- "concreteType": "...",
- "contentMd5": "...",
- "contentSize": 12345,
- "contentType": "...",
- "createdBy": "...",
- "createdOn": "...",
- "etag": "...",
- "fileName": "...",
- "id": "...",
- "storageLocationId": 12345
}, - {
- "concreteType": "...",
- "contentMd5": "...",
- "contentSize": 12345,
- "contentType": "...",
- "createdBy": "...",
- "createdOn": "...",
- "etag": "...",
- "fileName": "...",
- "id": "...",
- "storageLocationId": 12345
}
], - "fileName": "...",
- "hasChildren": true,
- "path": {
- "path": [
- {
- "benefactorId": 12345,
- "createdBy": "...",
- "createdOn": "...",
- "id": "...",
- "modifiedBy": "...",
- "modifiedOn": "...",
- "name": "...",
- "type": "...",
- "versionLabel": "...",
- "versionNumber": 12345
}, - {
- "benefactorId": 12345,
- "createdBy": "...",
- "createdOn": "...",
- "id": "...",
- "modifiedBy": "...",
- "modifiedOn": "...",
- "name": "...",
- "type": "...",
- "versionLabel": "...",
- "versionNumber": 12345
}
]
}, - "permissions": {
- "canAddChild": true,
- "canCertifiedUserAddChild": true,
- "canCertifiedUserEdit": true,
- "canChangePermissions": true,
- "canChangeSettings": true,
- "canDelete": true,
- "canDownload": true,
- "canEdit": true,
- "canEnableInheritance": true,
- "canModerate": true,
- "canPublicRead": true,
- "canUpload": true,
- "canView": true,
- "isCertificationRequired": true,
- "isCertifiedUser": true,
- "ownerPrincipalId": 12345
}, - "restrictionInformation": {
- "hasUnmetAccessRequirement": true,
- "restrictionLevel": "RESTRICTED_BY_TERMS_OF_USE"
}, - "rootWikiId": "...",
- "tableBundle": {
- "columnModels": [
- {
- "columnType": "STRING",
- "defaultValue": "...",
- "enumValues": [
- "...",
- "..."
], - "facetType": "enumeration",
- "id": "...",
- "maximumListLength": 100,
- "maximumSize": 12345,
- "name": "..."
}, - {
- "columnType": "USERID_LIST",
- "defaultValue": "...",
- "enumValues": [
- "...",
- "..."
], - "facetType": "range",
- "id": "...",
- "maximumListLength": 100,
- "maximumSize": 12345,
- "name": "..."
}
], - "maxRowsPerPage": 12345
}, - "threadCount": 12345
}Create an entity and associated components with a single POST. Specifically, this operation supports creation of an Entity, its Annotations, and its ACL.
Upon successful creation, an EntityBundle is returned containing the requested components, as defined by the partsMask in the request object.'
| generatedBy | string Generated By |
object (AccessControlList) Contains list of principals who can access the data with the allowed types of access for each. | |
object (Annotations) Annotations are additional key-value pair metadata that are associated with an object. | |
object (Entity) This is the base interface that all Entities implement. |
{- "accessControlList": {
- "createdBy": "...",
- "creationDate": "...",
- "etag": "...",
- "id": "...",
- "modifiedBy": "...",
- "modifiedOn": "...",
- "resourceAccess": [
- {
- "accessType": [
- "PARTICIPATE",
- "UPDATE_SUBMISSION"
], - "principalId": 12345
}, - {
- "accessType": [
- "DELETE",
- "UPLOAD"
], - "principalId": 12345
}
]
}, - "annotations": {
- "annotations": {
- "property1": {
- "type": "STRING",
- "value": [
- "...",
- "..."
]
}, - "property2": {
- "type": "STRING",
- "value": [
- "...",
- "..."
]
}
}, - "etag": "...",
- "id": "..."
}, - "entity": {
- "concreteType": "...",
- "createdBy": "...",
- "createdOn": "...",
- "description": "...",
- "etag": "...",
- "id": "...",
- "modifiedBy": "...",
- "modifiedOn": "...",
- "name": "...",
- "parentId": "..."
}
}{- "accessControlList": {
- "createdBy": "...",
- "creationDate": "...",
- "etag": "...",
- "id": "...",
- "modifiedBy": "...",
- "modifiedOn": "...",
- "resourceAccess": [
- {
- "accessType": [
- "CHANGE_PERMISSIONS",
- "UPDATE_SUBMISSION"
], - "principalId": 12345
}, - {
- "accessType": [
- "DOWNLOAD",
- "MODERATE"
], - "principalId": 12345
}
]
}, - "annotations": {
- "annotations": {
- "property1": {
- "type": "STRING",
- "value": [
- "...",
- "..."
]
}, - "property2": {
- "type": "TIMESTAMP_MS",
- "value": [
- "...",
- "..."
]
}
}, - "etag": "...",
- "id": "..."
}, - "benefactorAcl": {
- "createdBy": "...",
- "creationDate": "...",
- "etag": "...",
- "id": "...",
- "modifiedBy": "...",
- "modifiedOn": "...",
- "resourceAccess": [
- {
- "accessType": [
- "UPLOAD",
- "DELETE"
], - "principalId": 12345
}, - {
- "accessType": [
- "CHANGE_SETTINGS",
- "CREATE"
], - "principalId": 12345
}
]
}, - "doiAssociation": {
- "associatedBy": "...",
- "associatedOn": "...",
- "associationId": "...",
- "doiUri": "...",
- "doiUrl": "...",
- "etag": "...",
- "objectId": "...",
- "objectType": "VERIFICATION_SUBMISSION",
- "objectVersion": 12345,
- "updatedBy": "...",
- "updatedOn": "..."
}, - "entity": {
- "concreteType": "...",
- "createdBy": "...",
- "createdOn": "...",
- "description": "...",
- "etag": "...",
- "id": "...",
- "modifiedBy": "...",
- "modifiedOn": "...",
- "name": "...",
- "parentId": "..."
}, - "entityType": "entityview",
- "fileHandles": [
- {
- "concreteType": "...",
- "contentMd5": "...",
- "contentSize": 12345,
- "contentType": "...",
- "createdBy": "...",
- "createdOn": "...",
- "etag": "...",
- "fileName": "...",
- "id": "...",
- "storageLocationId": 12345
}, - {
- "concreteType": "...",
- "contentMd5": "...",
- "contentSize": 12345,
- "contentType": "...",
- "createdBy": "...",
- "createdOn": "...",
- "etag": "...",
- "fileName": "...",
- "id": "...",
- "storageLocationId": 12345
}
], - "fileName": "...",
- "hasChildren": true,
- "path": {
- "path": [
- {
- "benefactorId": 12345,
- "createdBy": "...",
- "createdOn": "...",
- "id": "...",
- "modifiedBy": "...",
- "modifiedOn": "...",
- "name": "...",
- "type": "...",
- "versionLabel": "...",
- "versionNumber": 12345
}, - {
- "benefactorId": 12345,
- "createdBy": "...",
- "createdOn": "...",
- "id": "...",
- "modifiedBy": "...",
- "modifiedOn": "...",
- "name": "...",
- "type": "...",
- "versionLabel": "...",
- "versionNumber": 12345
}
]
}, - "permissions": {
- "canAddChild": true,
- "canCertifiedUserAddChild": true,
- "canCertifiedUserEdit": true,
- "canChangePermissions": true,
- "canChangeSettings": true,
- "canDelete": true,
- "canDownload": true,
- "canEdit": true,
- "canEnableInheritance": true,
- "canModerate": true,
- "canPublicRead": true,
- "canUpload": true,
- "canView": true,
- "isCertificationRequired": true,
- "isCertifiedUser": true,
- "ownerPrincipalId": 12345
}, - "restrictionInformation": {
- "hasUnmetAccessRequirement": true,
- "restrictionLevel": "RESTRICTED_BY_TERMS_OF_USE"
}, - "rootWikiId": "...",
- "tableBundle": {
- "columnModels": [
- {
- "columnType": "STRING",
- "defaultValue": "...",
- "enumValues": [
- "...",
- "..."
], - "facetType": "enumeration",
- "id": "...",
- "maximumListLength": 100,
- "maximumSize": 12345,
- "name": "..."
}, - {
- "columnType": "USERID_LIST",
- "defaultValue": "...",
- "enumValues": [
- "...",
- "..."
], - "facetType": "range",
- "id": "...",
- "maximumListLength": 100,
- "maximumSize": 12345,
- "name": "..."
}
], - "maxRowsPerPage": 12345
}, - "threadCount": 12345
}All data in Synapse is organize into Projects. These Projects can be further organized into hierarchical Folders. Finally, the data is then represented by FileEntities or Records (coming soon) that reside within Folders or directly within Projects. All these objects (Projects, Folders, FileEntities, and Records) are derived from a common object called Entity. The Entity Services provide the means to create, read, update, and delete Synapse Entities. There are also services for navigating the Entity hierarchies, setting Authorization rules, and Annotating Entities.
Create a new Entity. This method is used to create Projects, Folders, FileEntities and Records (coming soon). The passed request body should contain the following fields:
Note: To create an Entity the caller must be granted the ACCESS_TYPE.CREATE on the parent Entity. Any authenticated caller can create a new Project (with parentId=null).
Service Limits
| resource | limit |
|---|---|
| The maximum number of children for a single parent entity | 10 K |
| generatedBy | string To track the Provenance of an Entity create, include the ID of the Activity that was created to track the change. For more information see: POST /activity. You must be the creator of the Activity used here.' |
| concreteType | string Indicates which implementation of Entity this object represents. It should be set to one of the following: org.sagebionetworks.repo.model.Project, org.sagebionetworks.repo.model.Folder, or org.sagebionetworks.repo.model.FileEntity. |
| createdBy | string The ID of the user that created this entity. |
| createdOn | string The date this entity was created. |
| description | string <= 1000 characters The description of this entity. |
| etag | string (Etag) Synapse employs an Optimistic Concurrency Control (OCC) scheme to handle concurrent updates. Since the E-Tag changes every time an entity is updated it is used to detect when a client's current representation of an entity is out-of-date. |
| id | string The unique immutable ID for this entity. A new ID will be generated for new Entities. Once issued, this ID is guaranteed to never change or be re-issued |
| modifiedBy | string The ID of the user that last modified this entity. |
| modifiedOn | string The date this entity was last modified. |
| name | string [ 1 .. 256 ] characters ^[a-zA-Z0-9 +.'(_)]*$ The name of this entity. Names may only contain: letters, numbers, spaces, underscores, hyphens, periods, plus signs, apostrophes, and parentheses |
| parentId | string The ID of the Entity that is the parent of this Entity. |
{- "concreteType": "...",
- "createdBy": "...",
- "createdOn": "...",
- "description": "...",
- "etag": "...",
- "id": "...",
- "modifiedBy": "...",
- "modifiedOn": "...",
- "name": "Trial ' + (_) . 09",
- "parentId": "..."
}{- "concreteType": "...",
- "createdBy": "...",
- "createdOn": "...",
- "description": "...",
- "etag": "...",
- "id": "...",
- "modifiedBy": "...",
- "modifiedOn": "...",
- "name": "Trial ' + (_) . 09",
- "parentId": "..."
}Moves an entity in the trash can, if the skipTrashCan is set to true will flag the entity for purge and it will be deleted as soon as possible.
Note: To delete an Entity the caller must be granted the
ACCESS_TYPE.DELETE on the Entity.
| id required | string The ID of an Entity. |
| skipTrashCan | boolean If true the entity will be flag for priority purge and deleted as soon as possible |
{ }Get an Entity using its ID.
Note: To get an Entity the caller must be granted the ACCESS_TYPE.READ on the Entity.
| id required | string The ID of an Entity. |
{- "concreteType": "...",
- "createdBy": "...",
- "createdOn": "...",
- "description": "...",
- "etag": "...",
- "id": "...",
- "modifiedBy": "...",
- "modifiedOn": "...",
- "name": "Trial ' + (_) . 09",
- "parentId": "..."
}Update an entity.
If the Entity is a FileEntity and the dataFileHandleId fields is set to a new value, then a new version will automatically be created for this update if the MD5 of the new file handle does not match the MD5 of the existing file handle or if the file handles do not have an MD5 set. You can also force the creation of a new version using the newVersion parameter
(see below).
Synapse employs an Optimistic Concurrency Control (OCC) scheme to handle concurrent updates. Each time an Entity is updated a new etag will be issued to the Entity. When an update is request, Synapse will compare the etag of the passed Entity with the current etag of the Entity. If the etags do not match, then the update will be rejected with a PRECONDITION_FAILED (412) response. When this occurs the caller should get the latest copy of the Entity (see: GET /entity/{id}) and re-apply any changes to the object, then re-attempt the Entity update. This ensure the caller has any changes applied by other users before applying their own changes.
Note: To update an Entity the caller must be granted the ACCESS_TYPE.UPDATE on the Entity.
Service Limits
| resource | limit |
|---|---|
| The maximum number of children for a single parent entity | 10 K |
| id required | string The ID of an Entity. |
| generatedBy | string To track the Provenance of an Entity update, include the ID of the Activity that was created to track the change. For more information see: POST /activity. You must be the creator of the Activity used here.' |
| newVersion | string To force the creation of a new version for a versionable entity such as a FileEntity, include this optional parameter with a value set to true (i.e. newVersion=true). This parameter is ignored for entities of type Table (See POST /entity/{id}/table/snapshot instead) |
| concreteType | string Indicates which implementation of Entity this object represents. It should be set to one of the following: org.sagebionetworks.repo.model.Project, org.sagebionetworks.repo.model.Folder, or org.sagebionetworks.repo.model.FileEntity. |
| createdBy | string The ID of the user that created this entity. |
| createdOn | string The date this entity was created. |
| description | string <= 1000 characters The description of this entity. |
| etag | string (Etag) Synapse employs an Optimistic Concurrency Control (OCC) scheme to handle concurrent updates. Since the E-Tag changes every time an entity is updated it is used to detect when a client's current representation of an entity is out-of-date. |
| id | string The unique immutable ID for this entity. A new ID will be generated for new Entities. Once issued, this ID is guaranteed to never change or be re-issued |
| modifiedBy | string The ID of the user that last modified this entity. |
| modifiedOn | string The date this entity was last modified. |
| name | string [ 1 .. 256 ] characters ^[a-zA-Z0-9 +.'(_)]*$ The name of this entity. Names may only contain: letters, numbers, spaces, underscores, hyphens, periods, plus signs, apostrophes, and parentheses |
| parentId | string The ID of the Entity that is the parent of this Entity. |
{- "concreteType": "...",
- "createdBy": "...",
- "createdOn": "...",
- "description": "...",
- "etag": "...",
- "id": "...",
- "modifiedBy": "...",
- "modifiedOn": "...",
- "name": "Trial ' + (_) . 09",
- "parentId": "..."
}{- "concreteType": "...",
- "createdBy": "...",
- "createdOn": "...",
- "description": "...",
- "etag": "...",
- "id": "...",
- "modifiedBy": "...",
- "modifiedOn": "...",
- "name": "Trial ' + (_) . 09",
- "parentId": "..."
}Determine if the caller have a given permission on a given Entity.
A User's permission on an Entity is a calculation based several factors including the permission granted by the Entity's ACL and the User's group membership. There might also be extra requirement for an Entity, such as special terms-of-use or special restrictions for sensitive data. This means a client cannot accurately calculate a User's permission on an Entity simply by inspecting the Entity's ACL. Instead, all clients should use this method to get the calculated permission a User has on an Entity.
| id required | string The ID of an Entity. |
| accessType | string The permission to check. Must be from: ACCESS_TYPE' |
{ }{- "result": true
}Delete the Access Control List (ACL) for a given Entity.
By default, Entities such as FileEntity and Folder inherit their permission from their containing Project. For such Entities the Project is the Entity's 'benefactor'. This permission inheritance can be overridden by creating an ACL for the Entity. When this occurs the Entity becomes its own benefactor and all permission are determined by its own ACL.
If the ACL of an Entity is deleted, then its benefactor will automatically be set to its parent''s benefactor. The ACL for a Project cannot be deleted.
Note: The caller must be granted ACCESS_TYPE.CHANGE_PERMISSIONS on the Entity to call this method.
| id required | string The ID of an Entity. |
{ }Get the Access Control List (ACL) for a given entity.
Note: If this method is called on an Entity that is inheriting its permission from another Entity a NOT_FOUND (404) response will be generated. The error response message will include the Entity''s benefactor ID.
| id required | string The ID of an Entity. |
{- "createdBy": "...",
- "creationDate": "12345",
- "etag": "...",
- "id": "...",
- "modifiedBy": "...",
- "modifiedOn": "12345",
- "resourceAccess": [
- {
- "accessType": [
- "UPDATE_SUBMISSION",
- "CHANGE_PERMISSIONS"
], - "principalId": 12345
}, - {
- "accessType": [
- "UPDATE",
- "SEND_MESSAGE"
], - "principalId": 12345
}
]
}Create a new Access Control List (ACL), overriding inheritance.
By default, Entities such as FileEntity and Folder inherit their permission from their containing Project. For such Entities the Project is the Entity's 'benefactor'. This permission inheritance can be overridden by creating an ACL for the Entity. When this occurs the Entity becomes its own benefactor and all permission are determined by its own ACL.
If the ACL of an Entity is deleted, then its benefactor will automatically be set to its parent's benefactor.
Note: The caller must be granted
ACCESS_TYPE.CHANGE_PERMISSIONS on the Entity to call this method.
| id required | string The ID of an Entity. |
| createdBy | string UNUSED -- maintained only for backwards compatibility with archived objects |
| creationDate | string Created Date |
| etag | string Synapse etag value |
| id | string The entity id |
| modifiedBy | string UNUSED -- maintained only for backwards compatibility with archived objects |
| modifiedOn | string UNUSED -- maintained only for backwards compatibility with archived objects |
Array of objects (ResourceAccess) The list of principals who can access the data with the allowed types of access for each. |
{- "createdBy": "...",
- "creationDate": "12345",
- "etag": "...",
- "id": "...",
- "modifiedBy": "...",
- "modifiedOn": "12345",
- "resourceAccess": [
- {
- "accessType": [
- "UPDATE_SUBMISSION",
- "CHANGE_PERMISSIONS"
], - "principalId": 12345
}, - {
- "accessType": [
- "UPDATE",
- "SEND_MESSAGE"
], - "principalId": 12345
}
]
}{- "createdBy": "...",
- "creationDate": "12345",
- "etag": "...",
- "id": "...",
- "modifiedBy": "...",
- "modifiedOn": "12345",
- "resourceAccess": [
- {
- "accessType": [
- "UPDATE_SUBMISSION",
- "CHANGE_PERMISSIONS"
], - "principalId": 12345
}, - {
- "accessType": [
- "UPDATE",
- "SEND_MESSAGE"
], - "principalId": 12345
}
]
}Update an Entity's ACL.
Note: The caller must be granted
ACCESS_TYPE.CHANGE_PERMISSIONS on the Entity to call this method.
| id required | string The ID of an Entity. |
| createdBy | string UNUSED -- maintained only for backwards compatibility with archived objects |
| creationDate | string Created Date |
| etag | string Synapse etag value |
| id | string The entity id |
| modifiedBy | string UNUSED -- maintained only for backwards compatibility with archived objects |
| modifiedOn | string UNUSED -- maintained only for backwards compatibility with archived objects |
Array of objects (ResourceAccess) The list of principals who can access the data with the allowed types of access for each. |
{- "createdBy": "...",
- "creationDate": "12345",
- "etag": "...",
- "id": "...",
- "modifiedBy": "...",
- "modifiedOn": "12345",
- "resourceAccess": [
- {
- "accessType": [
- "UPDATE_SUBMISSION",
- "CHANGE_PERMISSIONS"
], - "principalId": 12345
}, - {
- "accessType": [
- "UPDATE",
- "SEND_MESSAGE"
], - "principalId": 12345
}
]
}{- "createdBy": "...",
- "creationDate": "12345",
- "etag": "...",
- "id": "...",
- "modifiedBy": "...",
- "modifiedOn": "12345",
- "resourceAccess": [
- {
- "accessType": [
- "UPDATE_SUBMISSION",
- "CHANGE_PERMISSIONS"
], - "principalId": 12345
}, - {
- "accessType": [
- "UPDATE",
- "SEND_MESSAGE"
], - "principalId": 12345
}
]
}Get the annotations for an entity.
Note: The caller must be granted the ACCESS_TYPE.READ on the Entity, to get its annotations.
| id required | string The ID of an Entity. |
{- "annotations": {
- "property1": {
- "type": "STRING",
- "value": [
- "...",
- "..."
]
}, - "property2": {
- "type": "STRING",
- "value": [
- "...",
- "..."
]
}
}, - "etag": "...",
- "id": "..."
}Update an Entity's annotations.
Note: The caller must be granted the ACCESS_TYPE.UPDATE on the Entity, to update its annotations.
| id required | string The ID of an Entity. |
object Additional metadata associated with the object. The key is the name of your desired annotations. The value is an object containing a list of string values (use empty list to represent no values for key) and the value type associated with all values in the list | |
| etag | string Etag of the object to which this annotation belongs. To update an AnnotationV2, this field must match the current etag on the object. |
| id | string ID of the object to which this annotation belongs |
{- "annotations": {
- "property1": {
- "type": "STRING",
- "value": [
- "...",
- "..."
]
}, - "property2": {
- "type": "STRING",
- "value": [
- "...",
- "..."
]
}
}, - "etag": "...",
- "id": "..."
}{- "annotations": {
- "property1": {
- "type": "STRING",
- "value": [
- "...",
- "..."
]
}, - "property2": {
- "type": "STRING",
- "value": [
- "...",
- "..."
]
}
}, - "etag": "...",
- "id": "..."
}Get an Entity's benefactor.
The term 'benefactor' is used indicate which Entity an Entity inherits is ACL from. For example, a newly created Project will have its own ACL and therefore, it will be its own benefactor. A Folder will inherit its ACL (by default) from its containing Project so the Project will be the Folder's benefactor. This method will return the EntityHeader of an Entity's benefactor.
| id required | string The ID of an Entity. |
{ }{- "benefactorId": 12345,
- "createdBy": "...",
- "createdOn": "...",
- "id": "...",
- "modifiedBy": "...",
- "modifiedOn": "...",
- "name": "...",
- "type": "...",
- "versionLabel": "...",
- "versionNumber": 12345
}Change the DataType of the given entity. The entity's DataType controls how the entity can be accessed. For example, an entity's DataType must be set to 'open_data' in order for anonymous to be allowed to access its contents.
Note: The caller must be a member of the 'Synapse Access and Compliance Team' (id=464532) in order to change an Entity's type to 'OPEN_DATA'. The caller must be granted UPDATED on the Entity to change the its type to any other value.
'| id required | string The ID of an Entity. |
| type required | string Enum: "OPEN_DATA" "SENSITIVE_DATA" Type of data |
{- "dataType": "OPEN_DATA",
- "objectId": "...",
- "objectType": "FORM_GROUP",
- "updatedBy": "...",
- "updatedOn": "..."
}Get the FileHandles of the file currently associated with the current version of the Entity.
If a preview exists for the file then the handle of the preview and the file will be returned with this call.
| id required | string The ID of a File Entity. |
{- "list": [
- {
- "concreteType": "...",
- "contentMd5": "...",
- "contentSize": 12345,
- "contentType": "...",
- "createdBy": "...",
- "createdOn": "...",
- "etag": "...",
- "fileName": "...",
- "id": "...",
- "storageLocationId": 12345
}, - {
- "concreteType": "...",
- "contentMd5": "...",
- "contentSize": 12345,
- "contentType": "...",
- "createdBy": "...",
- "createdOn": "...",
- "etag": "...",
- "fileName": "...",
- "id": "...",
- "storageLocationId": 12345
}
]
}Get the URL of the preview file associated with the current version of a FileEntity.
Note: This call will result in a HTTP temporary redirect (307), to the actual file URL if the caller meets all of the download requirements.
| id required | string The ID of a File Entity. |
| redirect | boolean When set to false, the URL will be returned as text/plain instead of redirecting. |
| status | integer Status |
"string"Deletes the activity relationship for the current version of an Entity.
| id required | string The ID of an Entity. |
{ }Get an existing activity for the current version of an Entity.
| id required | string The ID of an Entity. |
Get an existing activity for the current version of an Entity.
{ }{- "createdBy": "...",
- "createdOn": "...",
- "description": "...",
- "etag": "...",
- "id": "...",
- "modifiedBy": "...",
- "modifiedOn": "...",
- "name": "...",
- "used": [
- {
- "concreteType": "...",
- "wasExecuted": true
}, - {
- "concreteType": "...",
- "wasExecuted": true
}
]
}Sets the generatedBy relationship for the current version of an Entity.
| id required | string The ID of an Entity. |
| generatedBy required | string The id of the activity to connect to the entity. You must be the creator of the Activity used here.' |
Sets the generatedBy relationship for the current version of an Entity.
{ }{- "createdBy": "...",
- "createdOn": "...",
- "description": "...",
- "etag": "...",
- "id": "...",
- "modifiedBy": "...",
- "modifiedOn": "...",
- "name": "...",
- "used": [
- {
- "concreteType": "...",
- "wasExecuted": true
}, - {
- "concreteType": "...",
- "wasExecuted": true
}
]
}Get the raw JSON for the given entity. The resulting JSON can be used for the validation of a entity against a JsonSchema.
Note: The caller must be granted the ACCESS_TYPE.READ permission on the Entity.
| id required | string The ID of an Entity. |
{ }Update the annotations of an entity using the raw JSON of the entity.
See: GET entity/{id}/json to get the JSON of an entity.
Note: The caller must be granted the ACCESS_TYPE.UPDATE and ACCESS_TYPE.READ permission on the Entity.
'| id required | string The ID of an Entity. |
Json Object
{ }{ }Get the full path of an Entity as a List of EntityHeaders. The first EntityHeader will be the Root Entity, and the last EntityHeader will be the requested Entity.
| id required | string The ID of an Entity. |
{- "path": [
- {
- "benefactorId": 12345,
- "createdBy": "...",
- "createdOn": "...",
- "id": "...",
- "modifiedBy": "...",
- "modifiedOn": "...",
- "name": "...",
- "type": "...",
- "versionLabel": "...",
- "versionNumber": 12345
}, - {
- "benefactorId": 12345,
- "createdBy": "...",
- "createdOn": "...",
- "id": "...",
- "modifiedBy": "...",
- "modifiedOn": "...",
- "name": "...",
- "type": "...",
- "versionLabel": "...",
- "versionNumber": 12345
}
]
}Get the list of permission that the caller has on a given Entity.
A User's permission on an Entity is a calculation based several factors including the permission granted by the Entity's ACL and the User's group membership. There might also be extra requirement for an Entity, such as special terms-of-use or special restrictions for sensitive data. This means a client cannot accurately calculate a User's permission on an Entity simply by inspecting the Entity''s ACL. Instead, all clients should use this method to get the calculated permission a User has on an Entity.
| id required | string The ID of an Entity. |
{- "canAddChild": true,
- "canCertifiedUserAddChild": true,
- "canCertifiedUserEdit": true,
- "canChangePermissions": true,
- "canChangeSettings": true,
- "canDelete": true,
- "canDownload": true,
- "canEdit": true,
- "canEnableInheritance": true,
- "canModerate": true,
- "canPublicRead": true,
- "canUpload": true,
- "canView": true,
- "isCertificationRequired": true,
- "isCertifiedUser": true,
- "ownerPrincipalId": 12345
}Clear the bound JSON schema from this Entity. The schema will no longer be used to validate this Entity or its children.
Note: The caller must be granted the DELETE permission on the Entity.
| id required | string The ID of an Entity. |
Get information about a JSON schema bound to an Entity. Note: Any child Entity that does not have a bound schema will inherit the first bound schema found in its hierarchy.
Note: The caller must be granted the READ permission on the Entity.
| id required | string The ID of an Entity. |
{- "createdBy": "...",
- "createdOn": "...",
- "jsonSchemaVersionInfo": {
- "$id": "...",
- "createdBy": "...",
- "createdOn": "...",
- "jsonSHA256Hex": "...",
- "organizationId": "...",
- "organizationName": "...",
- "schemaId": "...",
- "schemaName": "...",
- "semanticVersion": "...",
- "versionId": "..."
}, - "objectId": 12345,
- "objectType": "entity"
}Bind a JSON schema to an Entity. The bound schema will be used to validate the Entity''s metadata (annotations). Any child Entity that does not have a bound schema will inherit the first bound schema found in its hierarchy.
Only a single schema can be bound to an Entity at a time. If you have more than one schema to bind to an Entity you will need to create and bind a single composition schema using keywords such as 'anyOf', 'allOf' or 'oneOf' that defines how the schemas should be used for validation.
Note: The caller must be granted the UPDATE ermission on the Entity to bind.
| id required | string The ID of an Entity. |
The request identifies the JSON schema to bind.
| entityId | string The ID of the the entity. |
| schema$id | string The $id of the JSON schema to bind to the entity. Note: If the $id includes a semantic version then entity will be bound to that specific version. If the $id excludes the semantic version then the entity will be bound to the latest version of that schema. |
{- "entityId": "...",
- "schema$id": "..."
}{- "createdBy": "...",
- "createdOn": "...",
- "jsonSchemaVersionInfo": {
- "$id": "...",
- "createdBy": "...",
- "createdOn": "...",
- "jsonSHA256Hex": "...",
- "organizationId": "...",
- "organizationName": "...",
- "schemaId": "...",
- "schemaName": "...",
- "semanticVersion": "...",
- "versionId": "..."
}, - "objectId": 12345,
- "objectType": "entity"
}Get the validation results of an Entity against its bound JSON schema. The validation of an Entity against its bound schema is automatic and eventually consistent. The validation results include the etag of the Entity at the time of the last validation. If the returned etag does not match the current etag of the Entity then the results should be considered out-of-date. If an Entity has not been validated for the first time, or if the Entity does not have a bound schema, this method will return a 404 (not-found). Keep checking for the latest validation results.
Note: The caller must be granted the READ permission on the Entity.
| id required | string The ID of the Entity. |
{- "allValidationMessages": [
- "...",
- "..."
], - "isValid": true,
- "objectEtag": "...",
- "objectId": "...",
- "objectType": "entity",
- "schema$id": "...",
- "validatedOn": "...",
- "validationErrorMessage": "...",
- "validationException": {
- "causingExceptions": [
- { },
- { }
], - "keyword": "...",
- "message": "...",
- "pointerToViolation": "...",
- "schemaLocation": "..."
}
}Get a single page of invalid JSON schema validation results for a container Entity (Project or Folder). The validation of an Entity against its bound schema is automatic and eventually consistent. The validation results include the etag of the Entity at the time of the last validation. If the returned etag does not match the current etag of the Entity then the results should be considered out-of-date.
Note: The caller must be granted the READ permission on the container Entity. The results will only include children that the caller has the READ permission on.
| id required | string The ID of the container Entity. |
| containerId | string The ID of the Entity container to get. |
| nextPageToken | string Forward the returned 'nextPageToken' to get the next page of results. |
{- "containerId": "...",
- "nextPageToken": "..."
}{- "nextPageToken": "...",
- "page": [
- {
- "allValidationMessages": [
- "...",
- "..."
], - "isValid": true,
- "objectEtag": "...",
- "objectId": "...",
- "objectType": "entity",
- "schema$id": "...",
- "validatedOn": "...",
- "validationErrorMessage": "...",
- "validationException": {
- "causingExceptions": [
- { },
- { }
], - "keyword": "...",
- "message": "...",
- "pointerToViolation": "...",
- "schemaLocation": "..."
}
}, - {
- "allValidationMessages": [
- "...",
- "..."
], - "isValid": true,
- "objectEtag": "...",
- "objectId": "...",
- "objectType": "entity",
- "schema$id": "...",
- "validatedOn": "...",
- "validationErrorMessage": "...",
- "validationException": {
- "causingExceptions": [
- { },
- { }
], - "keyword": "...",
- "message": "...",
- "pointerToViolation": "...",
- "schemaLocation": "..."
}
}
]
}Get the The summary statistics of the JSON schema validation results for a single container Entity such as a Project or Folder. Only direct children of the container are included in the results. The statistics include the total number of children in the container, and the counts for both the invalid and valid children. If an Entity has not been validated for the first time, or it does not have bound schema it will be counted as 'unknown'.
The validation of an Entity against its bound schema is automatic and eventually consistent. Keep checking this method to get the latest validation statistics for the given container.
Note: The caller must be granted the READ permission on the container Entity. The resulting statistics will only include children that the caller has the READ permission on.
| id required | string The ID of the container Entity. |
{- "containerId": "...",
- "generatedOn": "...",
- "numberOfInvalidChildren": 12345,
- "numberOfUnknownChildren": 12345,
- "numberOfValidChildren": 12345,
- "totalNumberOfChildren": 12345
}Gets the temporary S3 credentials from STS for the given entity. These credentials are only good for the bucket and base key specified by the returned credentials and expire 12 hours after this API is called.
The specified entity must be a folder with an STS-enabled storage location. If that storage location is external storage, you may request read-only or read-write permissions. If that storage location is Synapse storage, you must request read-only permissions.
| id required | string The ID of the Folder with an STS-enabled storage location. |
| permission required | string Enum: "read_only" "read_write" Read-only or read-write permissions. |
{- "accessKeyId": "...",
- "baseKey": "...",
- "bucket": "...",
- "expiration": "...",
- "secretAccessKey": "...",
- "sessionToken": "..."
}Get the EntityHeader of an Entity given its ID. The EntityHeader is a light weight object with basic information about an Entity includes its type.
| id required | string The ID of the Entity. |
{ }{- "benefactorId": 12345,
- "createdBy": "...",
- "createdOn": "...",
- "id": "...",
- "modifiedBy": "...",
- "modifiedOn": "...",
- "name": "...",
- "type": "...",
- "versionLabel": "...",
- "versionNumber": 12345
}Get all versions of an Entity one page at a time.
| id required | string The ID of the Entity. |
| limit | integer >= 10 Default: 10 Limits the number of entities that will be fetched for this page. When null it will default to 10. |
| offset | integer >= 0 Default: 0 The offset index determines where this page will start from. When null it will default to 0. |
{- "results": [
- {
- "contentMd5": "...",
- "contentSize": "...",
- "id": "...",
- "modifiedBy": "...",
- "modifiedByPrincipalId": "...",
- "modifiedOn": "...",
- "versionComment": "...",
- "versionLabel": "...",
- "versionNumber": 12345
}, - {
- "contentMd5": "...",
- "contentSize": "...",
- "id": "...",
- "modifiedBy": "...",
- "modifiedByPrincipalId": "...",
- "modifiedOn": "...",
- "versionComment": "...",
- "versionLabel": "...",
- "versionNumber": 12345
}
], - "totalNumberOfResults": 12345
}Delete a specific version of a FileEntity.
| id required | string The ID of the Entity |
| versionNumber required | integer The version number of the Entity. |
{ }Get a specific version of an Entity.
Note: Only the current version of the Entity can be used for an Entity update. Therefore, only the current version of the Entity will be returned with the actual etag. All older versions will be returned with an eTag '00000000-0000-0000-0000-000000000000'.
| id required | string The ID of the Entity |
| versionNumber required | integer The version number of the Entity. |
{- "concreteType": "...",
- "createdBy": "...",
- "createdOn": "...",
- "description": "...",
- "etag": "...",
- "id": "...",
- "modifiedBy": "...",
- "modifiedOn": "...",
- "name": "Trial ' + (_) . 09",
- "parentId": "..."
}Get an Entity's annotations for a specific version of a FileEntity.
| id required | string The ID of the Entity. |
| versionNumber required | integer The version number of the Entity. |
{- "annotations": {
- "property1": {
- "type": "STRING",
- "value": [
- "...",
- "..."
]
}, - "property2": {
- "type": "STRING",
- "value": [
- "...",
- "..."
]
}
}, - "etag": "...",
- "id": "..."
}Updates the FileHandle associated with the FileEntity with the provided entity id and version.
| id required | string The ID of the Entity. |
| versionNumber required | integer The version number of the Entity. |
| newFileHandleId | string The id of the new file handle to be associated with the FileEntity. The user performing the request must be the owner of the file handle. |
| oldFileHandleId | string The id of the file handle currently associated to the FileEntity. Used to avoid conflicting cuncurrent updates, if the id does not match the current file handle id the request will be rejected with a PRECONDITION_FAILED (412) response. |
{- "newFileHandleId": "...",
- "oldFileHandleId": "..."
}"string"Get the FileHandles of the file associated with a specific version of a FileEntity.
If a preview exists for the file then the handle of the preview and the file will be returned with this call.
| id required | string The ID of the Entity. |
| versionNumber required | integer The version number of the Entity. |
{- "list": [
- {
- "concreteType": "...",
- "contentMd5": "...",
- "contentSize": 12345,
- "contentType": "...",
- "createdBy": "...",
- "createdOn": "...",
- "etag": "...",
- "fileName": "...",
- "id": "...",
- "storageLocationId": 12345
}, - {
- "concreteType": "...",
- "contentMd5": "...",
- "contentSize": 12345,
- "contentType": "...",
- "createdBy": "...",
- "createdOn": "...",
- "etag": "...",
- "fileName": "...",
- "id": "...",
- "storageLocationId": 12345
}
]
}Get the URL of the preview file associated with a specific version of a FileEntity.
Note: This call will result in a HTTP temporary redirect (307), to the actual file URL if the caller meets all of the download requirements.
| id required | string The ID of the Entity. |
| versionNumber required | integer The version number of the Entity. |
| redirect | boolean When set to false, the URL will be returned as text/plain instead of redirecting. |
"string"Get an existing activity for a specific version of an Entity.
| id required | string The ID of the Entity. |
| versionNumber required | integer The version number of the Entity. |
Get an existing activity for a specific version of an Entity.
{ }{- "createdBy": "...",
- "createdOn": "...",
- "description": "...",
- "etag": "...",
- "id": "...",
- "modifiedBy": "...",
- "modifiedOn": "...",
- "name": "...",
- "used": [
- {
- "concreteType": "...",
- "wasExecuted": true
}, - {
- "concreteType": "...",
- "wasExecuted": true
}
]
}Retrieve an entityId for a given parent ID and entity name. This service can also be used to lookup projectId by setting the parentId to NULL in EntityLookupRequest.
| entityName | string The entity name |
| parentId | string The parentID |
{- "entityName": "...",
- "parentId": "..."
}{- "id": "..."
}Get a page of children for a given parent ID. This service can also be used to list projects by setting the parentId to NULL in EntityChildrenRequest.
| includeSumFileSizes | boolean Default: false When true, the sum of the files sizes (bytes) with the given parentId and types will be included. False by default |
| includeTotalChildCount | boolean Default: false When true, the total number of children with the givenparentId and types will be included. False by default |
| includeTypes | Array of strings (EntityType) Items Enum: "project" "folder" "file" "table" "link" "entityview" "dockerrepo" "submissionview" The types of children to be include. Must include at least one type. |
| nextPageToken | string Optional parameter used to fetch the next page of results. When NULL, the first page will be returned. The nextPageToken is provided with the results if there is another page of results. |
| parentId | string The ID of the parent. Set to null to list projects. |
| sortBy | string (SortBy) Enum: "NAME" "CREATED_ON" "MODIFIED_ON" How results should be sorted. |
| sortDirection | string (SortDirection) Enum: "ASC" "DESC" Optional sort direction. Default is the default mysql sort direction for that type. |
{- "includeSumFileSizes": true,
- "includeTotalChildCount": true,
- "includeTypes": [
- "entityview",
- "project"
], - "nextPageToken": "...",
- "parentId": "...",
- "sortBy": "CREATED_ON",
- "sortDirection": "DESC"
}{- "nextPageToken": "...",
- "page": [
- {
- "benefactorId": 12345,
- "createdBy": "...",
- "createdOn": "...",
- "id": "...",
- "modifiedBy": "...",
- "modifiedOn": "...",
- "name": "...",
- "type": "...",
- "versionLabel": "...",
- "versionNumber": 12345
}, - {
- "benefactorId": 12345,
- "createdBy": "...",
- "createdOn": "...",
- "id": "...",
- "modifiedBy": "...",
- "modifiedOn": "...",
- "name": "...",
- "type": "...",
- "versionLabel": "...",
- "versionNumber": 12345
}
], - "sumFileSizesBytes": 12345,
- "totalChildCount": 12345
}Get the EntityHeader for a list of references with a POST. If any item in the batch fails (e.g., with a 404) it will be EXCLUDED in the result set.
Array of objects (Reference) The list of references |
{- "references": [
- {
- "targetId": "...",
- "targetVersionNumber": 12345
}, - {
- "targetId": "...",
- "targetVersionNumber": 12345
}
]
}{- "results": [
- {
- "benefactorId": 12345,
- "createdBy": "...",
- "createdOn": "...",
- "id": "...",
- "modifiedBy": "...",
- "modifiedOn": "...",
- "name": "...",
- "type": "...",
- "versionLabel": "...",
- "versionNumber": 12345
}, - {
- "benefactorId": 12345,
- "createdBy": "...",
- "createdOn": "...",
- "id": "...",
- "modifiedBy": "...",
- "modifiedOn": "...",
- "name": "...",
- "type": "...",
- "versionLabel": "...",
- "versionNumber": 12345
}
], - "totalNumberOfResults": 12345
}Gets at most 200 FileEntities matching the given MD5 string which the user has read access to. NOTE: Another option is to create a file view that includes MD5 values. https://docs.synapse.org/articles/views.html
| md5 required | string File MD5 |
{ }{- "results": [
- {
- "benefactorId": 12345,
- "createdBy": "...",
- "createdOn": "...",
- "id": "...",
- "modifiedBy": "...",
- "modifiedOn": "...",
- "name": "...",
- "type": "...",
- "versionLabel": "...",
- "versionNumber": 12345
}, - {
- "benefactorId": 12345,
- "createdBy": "...",
- "createdOn": "...",
- "id": "...",
- "modifiedBy": "...",
- "modifiedOn": "...",
- "name": "...",
- "type": "...",
- "versionLabel": "...",
- "versionNumber": 12345
}
], - "totalNumberOfResults": 12345
}Get a batch of EntityHeader given multile Entity IDs. The EntityHeader is a light weight object with basic information about an Entity includes its type.
| batch required | string A comma separated list of Entity IDs to get EntityHeaders for. |
{- "results": [
- {
- "benefactorId": 12345,
- "createdBy": "...",
- "createdOn": "...",
- "id": "...",
- "modifiedBy": "...",
- "modifiedOn": "...",
- "name": "...",
- "type": "...",
- "versionLabel": "...",
- "versionNumber": 12345
}, - {
- "benefactorId": 12345,
- "createdBy": "...",
- "createdOn": "...",
- "id": "...",
- "modifiedBy": "...",
- "modifiedOn": "...",
- "name": "...",
- "type": "...",
- "versionLabel": "...",
- "versionNumber": 12345
}
], - "totalNumberOfResults": 12345
}The Evaluation API is designed to support open-access data analysis and modeling challenges in Synapse. This framework provides tools for administrators to collect and analyze data models from Synapse users created for a specific goal or purpose.
Gets Evaluations tied to a project. Note: The response will contain only those Evaluations on which the caller is granted the ACCESS_TYPE.READ permission, unless specified otherwise with the accessType parameter.
| id required | string the ID of the project |
| accessType | string (ACCESS_TYPE) Enum: "CREATE" "READ" "UPDATE" "DELETE" "CHANGE_PERMISSIONS" "DOWNLOAD" "UPLOAD" "PARTICIPATE" "SUBMIT" "READ_PRIVATE_SUBMISSION" "UPDATE_SUBMISSION" "DELETE_SUBMISSION" "TEAM_MEMBERSHIP_UPDATE" "SEND_MESSAGE" "CHANGE_SETTINGS" "MODERATE" The type of access for the user to filter for, optional and defaults to ACCESS_TYPE.READ |
| activeOnly | boolean Default: false If 'true' then return only those evaluations with rounds defined and for which the current time is in one of the rounds. |
| evaluationIds | string an optional, comma-delimited list of evaluation IDs to which the response is limited |
| limit | integer >= 0 Default: 10 Limits the number of entities that will be fetched for this page. When null it will default to 10. |
| offset | integer >= 0 Default: 0 The offset index determines where this page will start from. An index of 0 is the first entity. When null it will default to 0. |
{- "results": [
- {
- "contentSource": "syn234444",
- "createdOn": "12345",
- "description": "Evaluation Queue",
- "etag": "aaaaa",
- "id": "12345",
- "name": "Test Evaluation",
- "ownerId": "22222",
- "quota": {
- "firstRoundStart": "12345",
- "numberOfRounds": 12345,
- "roundDurationMillis": 12345,
- "submissionLimit": 12345
}, - "status": "PLANNED",
- "submissionInstructionsMessage": "Instructions",
- "submissionReceiptMessage": "Received"
}
], - "totalNumberOfResults": 0
}Gets a collection of Evaluations, within a given range.
Note: The response will contain only those Evaluations on which the caller is
granted the ACCESS_TYPE.READ
permission, unless specified otherwise with the accessType parameter.
| accessType | string Default: "READ" Enum: "CHANGE_PERMISSIONS" "CHANGE_SETTINGS" "CREATE" "DELETE" "DELETE_SUBMISSION" "DOWNLOAD" "MODERATE" "PARTICIPATE" "READ" "READ_PRIVATE_SUBMISSION" "SEND_MESSAGE" "SUBMIT" "TEAM_MEMBERSHIP_UPDATE" "UPDATE" "UPDATE_SUBMISSION" "UPLOAD" The type of access for the user to filter for, optional and defaults to ACCESS_TYPE.READ |
| activeOnly | boolean Default: false If 'true' then return only those evaluations with rounds defined and for which the current time is in one of the rounds. |
| evaluationIds | string an optional, comma-delimited list of evaluation IDs to which the response is limited |
| limit | integer [ 10 .. 100 ] Default: 10 Maximum number of results returned |
| offset | integer >= 0 Default: 0 The index of the pagination offset. For a page size of 10, the first page would be at offset = 0, and the second page would be at offset = 10. |
{- "results": [
- {
- "contentSource": "syn234444",
- "createdOn": "12345",
- "description": "Evaluation Queue",
- "etag": "aaaaa",
- "id": "12345",
- "name": "Test Evaluation",
- "ownerId": "22222",
- "quota": {
- "firstRoundStart": "12345",
- "numberOfRounds": 12345,
- "roundDurationMillis": 12345,
- "submissionLimit": 12345
}, - "status": "PLANNED",
- "submissionInstructionsMessage": "Instructions",
- "submissionReceiptMessage": "Received"
}
], - "totalNumberOfResults": 0
}'Creates a new Evaluation. The passed request body should contain the following fields:
Note: The caller must be granted the ACCESS_TYPE.CREATE on the contentSource Entity.
| contentSource | string The Synapse ID of the Entity to which this Evaluation belongs, e.g. a reference to a Synapse project. |
| createdOn | string The date on which Evaluation was created. |
| description | string A text description of this Evaluation. |
| etag | string Synapse employs an Optimistic Concurrency Control (OCC) scheme to handle concurrent updates. The eTag changes every time an Evaluation is updated; it is used to detect when a client's copy of an Evaluation is out-of-date. |
| id | string The unique immutable ID for this Evaluation. |
| name | string The name of this Evaluation |
| ownerId | string The ID of the Synapse user who created this Evaluation. |
object (SubmissionQuota) Maximum submissions per team/participant per submission round. If round information is omitted, then this indicates the overall submission limit per team/participant. | |
| status | string (EvaluationStatus) Enum: "PLANNED" "OPEN" "CLOSED" "COMPLETED" The possible states of a Synapse Evaluation. |
| submissionInstructionsMessage | string Message to display to users detailing acceptable formatting for Submissions to this Evaluation. |
| submissionReceiptMessage | string Message to display to users upon successful submission to this Evaluation. |
{- "contentSource": "syn234444",
- "createdOn": "12345",
- "description": "Evaluation Queue",
- "etag": "aaaaa",
- "id": "12345",
- "name": "Test Evaluation",
- "ownerId": "22222",
- "quota": {
- "firstRoundStart": "12345",
- "numberOfRounds": 12345,
- "roundDurationMillis": 12345,
- "submissionLimit": 12345
}, - "status": "PLANNED",
- "submissionInstructionsMessage": "Instructions",
- "submissionReceiptMessage": "Received"
}{- "contentSource": "syn234444",
- "createdOn": "12345",
- "description": "Evaluation Queue",
- "etag": "aaaaa",
- "id": "12345",
- "name": "Test Evaluation",
- "ownerId": "22222",
- "quota": {
- "firstRoundStart": "12345",
- "numberOfRounds": 12345,
- "roundDurationMillis": 12345,
- "submissionLimit": 12345
}, - "status": "PLANNED",
- "submissionInstructionsMessage": "Instructions",
- "submissionReceiptMessage": "Received"
}Deletes an Evaluation.
Note: The caller must be granted the ACCESS_TYPE.DELETE on the specified Evaluation.
| evalId required | string The ID of the specified Evaluation. |
Gets an Evaluation.
Note: The caller must be granted the <a
href="${org.sagebionetworks.repo.model.ACCESS_TYPE}"
ACCESS_TYPE.READ on the specified Evaluation.
| evalId required | string The ID of the specified Evaluation. |
{- "contentSource": "syn234444",
- "createdOn": "12345",
- "description": "Evaluation Queue",
- "etag": "aaaaa",
- "id": "12345",
- "name": "Test Evaluation",
- "ownerId": "22222",
- "quota": {
- "firstRoundStart": "12345",
- "numberOfRounds": 12345,
- "roundDurationMillis": 12345,
- "submissionLimit": 12345
}, - "status": "PLANNED",
- "submissionInstructionsMessage": "Instructions",
- "submissionReceiptMessage": "Received"
}'Updates an Evaluation.
Synapse employs an Optimistic Concurrency Control (OCC) scheme to handle
concurrent updates. Each time an Evaluation is updated a new etag will be
issued to the Evaluation. When an update is requested, Synapse will compare the
etag of the passed Evaluation with the current etag of the Evaluation. If the
etags do not match, then the update will be rejected with a
PRECONDITION_FAILED (412) response. When this occurs, the caller should
fetch the latest copy of the Evaluation and re-apply any changes, then re-attempt
the Evaluation update.
Note: The caller must be granted the <a
href="${org.sagebionetworks.repo.model.ACCESS_TYPE}"
ACCESS_TYPE.UPDATE on the specified Evaluation.
| evalId required | string The ID of the specified Evaluation. |
| contentSource | string The Synapse ID of the Entity to which this Evaluation belongs, e.g. a reference to a Synapse project. |
| createdOn | string The date on which Evaluation was created. |
| description | string A text description of this Evaluation. |
| etag | string Synapse employs an Optimistic Concurrency Control (OCC) scheme to handle concurrent updates. The eTag changes every time an Evaluation is updated; it is used to detect when a client's copy of an Evaluation is out-of-date. |
| id | string The unique immutable ID for this Evaluation. |
| name | string The name of this Evaluation |
| ownerId | string The ID of the Synapse user who created this Evaluation. |
object (SubmissionQuota) Maximum submissions per team/participant per submission round. If round information is omitted, then this indicates the overall submission limit per team/participant. | |
| status | string (EvaluationStatus) Enum: "PLANNED" "OPEN" "CLOSED" "COMPLETED" The possible states of a Synapse Evaluation. |
| submissionInstructionsMessage | string Message to display to users detailing acceptable formatting for Submissions to this Evaluation. |
| submissionReceiptMessage | string Message to display to users upon successful submission to this Evaluation. |
{- "contentSource": "syn234444",
- "createdOn": "12345",
- "description": "Evaluation Queue",
- "etag": "aaaaa",
- "id": "12345",
- "name": "Test Evaluation",
- "ownerId": "22222",
- "quota": {
- "firstRoundStart": "12345",
- "numberOfRounds": 12345,
- "roundDurationMillis": 12345,
- "submissionLimit": 12345
}, - "status": "PLANNED",
- "submissionInstructionsMessage": "Instructions",
- "submissionReceiptMessage": "Received"
}{- "contentSource": "syn234444",
- "createdOn": "12345",
- "description": "Evaluation Queue",
- "etag": "aaaaa",
- "id": "12345",
- "name": "Test Evaluation",
- "ownerId": "22222",
- "quota": {
- "firstRoundStart": "12345",
- "numberOfRounds": 12345,
- "roundDurationMillis": 12345,
- "submissionLimit": 12345
}, - "status": "PLANNED",
- "submissionInstructionsMessage": "Instructions",
- "submissionReceiptMessage": "Received"
}Determines whether the logged in user has a certain ACCESS_TYPE on the specified Evaluation.
| evalId required | string The ID of the specified Evaluation. |
| accessType required | string Synapse access type |
{- "result": true
}This method is deprecated and should be removed from future versions of the API.
Deletes the ACL (access control list) of the specified evaluation. The user should have the proper permissions to delete the ACL.
| evalId required | string The ID of the specified Evaluation. |
Gets the access control list (ACL) governing the given evaluation. The user should have the proper permissions to read the ACL.
| evalId required | string The ID of the specified Evaluation. |
{- "createdBy": "...",
- "creationDate": "12345",
- "etag": "...",
- "id": "...",
- "modifiedBy": "...",
- "modifiedOn": "12345",
- "resourceAccess": [
- {
- "accessType": [
- "UPDATE_SUBMISSION",
- "CHANGE_PERMISSIONS"
], - "principalId": 12345
}, - {
- "accessType": [
- "UPDATE",
- "SEND_MESSAGE"
], - "principalId": 12345
}
]
}Create Evaluation Round
| evalId required | string The ID of the specified Evaluation. |
| etag | string Synapse etag |
| evaluationId | string The unique immutable ID for this Evaluation. |
| id | string Evaluation round Id |
Array of objects (EvaluationRoundLimit) List of round limits | |
| roundEnd | string End of round |
| roundStart | string Start of round |
{- "etag": "...",
- "evaluationId": "...",
- "id": "...",
- "limits": [
- {
- "limitType": "TOTAL",
- "maximumSubmissions": 12345
}, - {
- "limitType": "WEEKLY",
- "maximumSubmissions": 12345
}
], - "roundEnd": "12345",
- "roundStart": "12345"
}{- "etag": "...",
- "evaluationId": "...",
- "id": "...",
- "limits": [
- {
- "limitType": "TOTAL",
- "maximumSubmissions": 12345
}, - {
- "limitType": "WEEKLY",
- "maximumSubmissions": 12345
}
], - "roundEnd": "12345",
- "roundStart": "12345"
}Get Evaluation Round
| evalId required | string The ID of the specified Evaluation. |
| roundId required | string The ID of the evaluation round |
{- "etag": "...",
- "evaluationId": "...",
- "id": "...",
- "limits": [
- {
- "limitType": "TOTAL",
- "maximumSubmissions": 12345
}, - {
- "limitType": "WEEKLY",
- "maximumSubmissions": 12345
}
], - "roundEnd": "12345",
- "roundStart": "12345"
}Update Evaluation Round
| evalId required | string The ID of the specified Evaluation. |
| roundId required | string The ID of the evaluation round |
| etag | string Synapse etag |
| evaluationId | string The unique immutable ID for this Evaluation. |
| id | string Evaluation round Id |
Array of objects (EvaluationRoundLimit) List of round limits | |
| roundEnd | string End of round |
| roundStart | string Start of round |
{- "etag": "...",
- "evaluationId": "...",
- "id": "...",
- "limits": [
- {
- "limitType": "TOTAL",
- "maximumSubmissions": 12345
}, - {
- "limitType": "WEEKLY",
- "maximumSubmissions": 12345
}
], - "roundEnd": "12345",
- "roundStart": "12345"
}{- "etag": "...",
- "evaluationId": "...",
- "id": "...",
- "limits": [
- {
- "limitType": "TOTAL",
- "maximumSubmissions": 12345
}, - {
- "limitType": "WEEKLY",
- "maximumSubmissions": 12345
}
], - "roundEnd": "12345",
- "roundStart": "12345"
}Get all rounds of an Evaluation
| evalId required | string The ID of the specified Evaluation. |
| nextPageToken | string The token required to be sent with the subsequent batch. |
{- "nextPageToken": "..."
}{- "nextPageToken": "...",
- "page": [
- {
- "etag": "...",
- "evaluationId": "...",
- "id": "...",
- "limits": [
- {
- "limitType": "TOTAL",
- "maximumSubmissions": 12345
}, - {
- "limitType": "TOTAL",
- "maximumSubmissions": 12345
}
], - "roundEnd": "12345",
- "roundStart": "12345"
}, - {
- "etag": "...",
- "evaluationId": "...",
- "id": "...",
- "limits": [
- {
- "limitType": "TOTAL",
- "maximumSubmissions": 12345
}, - {
- "limitType": "MONTHLY",
- "maximumSubmissions": 12345
}
], - "roundEnd": "12345",
- "roundStart": "12345"
}
]
}Update multiple SubmissionStatuses. The maximum batch size is 500. To allow upload of more than this maximum, the system supports uploading of a series of batches. Synapse employs optimistic concurrency on the series in the form of a batch token. Each request (except the first) must include the ''batch token'' returned in the response to the previous batch. If another client begins batch upload simultaneously, a PRECONDITION_FAILED (412) response will be generated and upload must restart from the first batch. After the final batch is uploaded, the data for the Evaluation queue will be mirrored to the tables which support querying. Therefore uploaded data will not appear in Evaluation queries until after the final batch is successfully uploaded. It is the client''s responsibility to note in each batch request (1) whether it is the first batch in the series and (2) whether it is the last batch. (For a single batch both are set to ''true''.)
Failure to use the flags correctly risks corrupted data (due to simultaneous, conflicting uploads by multiple clients) or data not appearing in query results.
Note: The caller must be granted the ACCESS_TYPE.UPDATE_SUBMISSION on the specified Evaluation.
| evalId required | string The ID of the specified Evaluation. |
| batchToken | string A token required to accept a batch submission for all but the first batch. |
| isFirstBatch | boolean true if and only if this is the first batch to upload |
| isLastBatch | boolean true if and only if this is the last batch to upload |
Array of objects (SubmissionStatus) A collection of Submission Statuses |
{- "batchToken": "...",
- "isFirstBatch": true,
- "isLastBatch": true,
- "statuses": [
- {
- "annotations": {
- "doubleAnnos": [
- { },
- { }
], - "longAnnos": [
- { },
- { }
], - "objectId": "...",
- "scopeId": "...",
- "stringAnnos": [
- { },
- { }
], - "version": 12345
}, - "canCancel": true,
- "cancelRequested": true,
- "entityId": "...",
- "etag": "...",
- "id": "...",
- "modifiedOn": "12345",
- "status": "RECEIVED",
- "statusVersion": 12345,
- "submissionAnnotations": {
- "annotations": {
- "property1": { },
- "property2": { }
}, - "etag": "...",
- "id": "..."
}, - "versionNumber": 12345
}, - {
- "annotations": {
- "doubleAnnos": [
- { },
- { }
], - "longAnnos": [
- { },
- { }
], - "objectId": "...",
- "scopeId": "...",
- "stringAnnos": [
- { },
- { }
], - "version": 12345
}, - "canCancel": true,
- "cancelRequested": true,
- "entityId": "...",
- "etag": "...",
- "id": "...",
- "modifiedOn": "12345",
- "status": "CLOSED",
- "statusVersion": 12345,
- "submissionAnnotations": {
- "annotations": {
- "property1": { },
- "property2": { }
}, - "etag": "...",
- "id": "..."
}, - "versionNumber": 12345
}
]
}{- "nextUploadToken": "..."
}Gets the requesting user's Submissions to a specified Evaluation.
| evalId required | string The ID of the specified Evaluation. |
| limit | integer [ 10 .. 100 ] Default: 10 Limits the number of entities that will be fetched for this page. When null it will default to 10. |
| offset | integer >= 0 Default: 0 The offset index determines where this page will start from. An index of 0 is the first entity. When null it will default to 0.' |
{- "results": [
- {
- "contributors": [
- {
- "createdOn": "...",
- "principalId": "..."
}, - {
- "createdOn": "...",
- "principalId": "..."
}
], - "createdOn": "...",
- "dockerDigest": "...",
- "dockerRepositoryName": "...",
- "entityBundleJSON": "...",
- "entityId": "...",
- "evaluationId": "...",
- "evaluationRoundId": "...",
- "id": "...",
- "name": "...",
- "submitterAlias": "...",
- "teamId": "...",
- "userId": "...",
- "versionNumber": 12345
}, - {
- "contributors": [
- {
- "createdOn": "...",
- "principalId": "..."
}, - {
- "createdOn": "...",
- "principalId": "..."
}
], - "createdOn": "...",
- "dockerDigest": "...",
- "dockerRepositoryName": "...",
- "entityBundleJSON": "...",
- "entityId": "...",
- "evaluationId": "...",
- "evaluationRoundId": "...",
- "id": "...",
- "name": "...",
- "submitterAlias": "...",
- "teamId": "...",
- "userId": "...",
- "versionNumber": 12345
}
], - "totalNumberOfResults": 12345
}'Gets a collection of Submissions to a specified Evaluation.
Note: The caller must be granted the ACCESS_TYPE.READ_PRIVATE_SUBMISSION on the specified Evaluation.
| evalId required | string The ID of the specified Evaluation. |
| limit | integer [ 10 .. 100 ] Default: 10 Limits the number of entities that will be fetched for this page. When null it will default to 10, max value 100. |
| offset | integer Default: 0 The offset index determines where this page will start from. An index of 0 is the first entity. When null it will default to 0. |
| status | string Status of submission. |
{- "results": [
- {
- "contributors": [
- {
- "createdOn": "...",
- "principalId": "..."
}, - {
- "createdOn": "...",
- "principalId": "..."
}
], - "createdOn": "...",
- "dockerDigest": "...",
- "dockerRepositoryName": "...",
- "entityBundleJSON": "...",
- "entityId": "...",
- "evaluationId": "...",
- "evaluationRoundId": "...",
- "id": "...",
- "name": "...",
- "submitterAlias": "...",
- "teamId": "...",
- "userId": "...",
- "versionNumber": 12345
}, - {
- "contributors": [
- {
- "createdOn": "...",
- "principalId": "..."
}, - {
- "createdOn": "...",
- "principalId": "..."
}
], - "createdOn": "...",
- "dockerDigest": "...",
- "dockerRepositoryName": "...",
- "entityBundleJSON": "...",
- "entityId": "...",
- "evaluationId": "...",
- "evaluationRoundId": "...",
- "id": "...",
- "name": "...",
- "submitterAlias": "...",
- "teamId": "...",
- "userId": "...",
- "versionNumber": 12345
}
], - "totalNumberOfResults": 12345
}Gets the requesting user's bundled Submissions and SubmissionStatuses to a specified Evaluation.
| evalId required | string The ID of the specified Evaluation. |
| limit | integer [ 10 .. 100 ] Default: 10 Limits the number of entities that will be fetched for this page. When null it will default to 10.' |
| offset | integer Default: 0 The offset index determines where this page will start from. An index of 0 is the first entity. When null it will default to 0. |
{- "results": [
- {
- "submission": {
- "contributors": [
- { },
- { }
], - "createdOn": "...",
- "dockerDigest": "...",
- "dockerRepositoryName": "...",
- "entityBundleJSON": "...",
- "entityId": "...",
- "evaluationId": "...",
- "evaluationRoundId": "...",
- "id": "...",
- "name": "...",
- "submitterAlias": "...",
- "teamId": "...",
- "userId": "...",
- "versionNumber": 12345
}, - "submissionStatus": {
- "annotations": { },
- "canCancel": true,
- "cancelRequested": true,
- "entityId": "...",
- "etag": "...",
- "id": "...",
- "modifiedOn": "...",
- "status": "REJECTED",
- "statusVersion": 12345,
- "submissionAnnotations": { },
- "versionNumber": 12345
}
}, - {
- "submission": {
- "contributors": [
- { },
- { }
], - "createdOn": "...",
- "dockerDigest": "...",
- "dockerRepositoryName": "...",
- "entityBundleJSON": "...",
- "entityId": "...",
- "evaluationId": "...",
- "evaluationRoundId": "...",
- "id": "...",
- "name": "...",
- "submitterAlias": "...",
- "teamId": "...",
- "userId": "...",
- "versionNumber": 12345
}, - "submissionStatus": {
- "annotations": { },
- "canCancel": true,
- "cancelRequested": true,
- "entityId": "...",
- "etag": "...",
- "id": "...",
- "modifiedOn": "...",
- "status": "VALIDATED",
- "statusVersion": 12345,
- "submissionAnnotations": { },
- "versionNumber": 12345
}
}
], - "totalNumberOfResults": 12345
}Gets a collection of bundled Submissions and SubmissionStatuses to a given Evaluation.
Note: The caller must be granted the ACCESS_TYPE.READ_PRIVATE_SUBMISSION on the specified Evaluation.
| evalId required | string The ID of the specified Evaluation. |
| limit | integer [ 10 .. 100 ] Default: 10 Limits the number of entities that will be fetched for this page. When null it will default to 10.' |
| offset | integer Default: 0 The offset index determines where this page will start from. An index of 0 is the first entity. When null it will default to 0. |
| status | string Submission Status |
{- "results": [
- {
- "submission": {
- "contributors": [
- { },
- { }
], - "createdOn": "...",
- "dockerDigest": "...",
- "dockerRepositoryName": "...",
- "entityBundleJSON": "...",
- "entityId": "...",
- "evaluationId": "...",
- "evaluationRoundId": "...",
- "id": "...",
- "name": "...",
- "submitterAlias": "...",
- "teamId": "...",
- "userId": "...",
- "versionNumber": 12345
}, - "submissionStatus": {
- "annotations": { },
- "canCancel": true,
- "cancelRequested": true,
- "entityId": "...",
- "etag": "...",
- "id": "...",
- "modifiedOn": "...",
- "status": "REJECTED",
- "statusVersion": 12345,
- "submissionAnnotations": { },
- "versionNumber": 12345
}
}, - {
- "submission": {
- "contributors": [
- { },
- { }
], - "createdOn": "...",
- "dockerDigest": "...",
- "dockerRepositoryName": "...",
- "entityBundleJSON": "...",
- "entityId": "...",
- "evaluationId": "...",
- "evaluationRoundId": "...",
- "id": "...",
- "name": "...",
- "submitterAlias": "...",
- "teamId": "...",
- "userId": "...",
- "versionNumber": 12345
}, - "submissionStatus": {
- "annotations": { },
- "canCancel": true,
- "cancelRequested": true,
- "entityId": "...",
- "etag": "...",
- "id": "...",
- "modifiedOn": "...",
- "status": "VALIDATED",
- "statusVersion": 12345,
- "submissionAnnotations": { },
- "versionNumber": 12345
}
}
], - "totalNumberOfResults": 12345
}Gets the number of Submissions to a specified Evaluation. Note: The caller must be granted the ACCESS_TYPE.READ_PRIVATE_SUBMISSION on the specified Evaluation.
| evalId required | string The ID of the specified Evaluation. |
0'Gets a collection of SubmissionStatuses to a specified Evaluation.
Note: The caller must be granted the ACCESS_TYPE.READ on the specified Evaluation. Furthermore, the caller must be granted the ACCESS_TYPE.READ_PRIVATE_SUBMISSION to see all data marked as "private" in the SubmissionStatuses.
| evalId required | string The ID of the specified Evaluation. |
| limit | integer [ 10 .. 100 ] Default: 10 Limits the number of entities that will be fetched for this page. When null it will default to 10.' |
| offset | integer Default: 0 The offset index determines where this page will start from. An index of 0 is the first entity. When null it will default to 0. |
| status | string Submission status |
{- "results": [
- {
- "annotations": {
- "doubleAnnos": [
- { },
- { }
], - "longAnnos": [
- { },
- { }
], - "objectId": "...",
- "scopeId": "...",
- "stringAnnos": [
- { },
- { }
], - "version": 12345
}, - "canCancel": true,
- "cancelRequested": true,
- "entityId": "...",
- "etag": "...",
- "id": "...",
- "modifiedOn": "...",
- "status": "ACCEPTED",
- "statusVersion": 12345,
- "submissionAnnotations": {
- "annotations": {
- "property1": { },
- "property2": { }
}, - "etag": "...",
- "id": "..."
}, - "versionNumber": 12345
}, - {
- "annotations": {
- "doubleAnnos": [
- { },
- { }
], - "longAnnos": [
- { },
- { }
], - "objectId": "...",
- "scopeId": "...",
- "stringAnnos": [
- { },
- { }
], - "version": 12345
}, - "canCancel": true,
- "cancelRequested": true,
- "entityId": "...",
- "etag": "...",
- "id": "...",
- "modifiedOn": "...",
- "status": "ACCEPTED",
- "statusVersion": 12345,
- "submissionAnnotations": {
- "annotations": {
- "property1": { },
- "property2": { }
}, - "etag": "...",
- "id": "..."
}, - "versionNumber": 12345
}
], - "totalNumberOfResults": 12345
}Find out whether a Team and its members are eligible to submit to a given Evaluation queue (at the current time). The request must include an Evaluation ID and a Team ID. The 'eligibilityStateHash' field of the returned object is a required parameter of the subsequent Team Submission request made for the given Evaluation and Team. (See: POST/evaluation/submission)'
| evalId required | string The ID of the specified Evaluation. |
| id required | string The ID of a Team. |
{- "eligibilityStateHash": 12345,
- "evaluationId": "...",
- "membersEligibility": [
- {
- "hasConflictingSubmission": true,
- "isEligible": true,
- "isQuotaFilled": true,
- "isRegistered": true,
- "principalId": 12345
}, - {
- "hasConflictingSubmission": true,
- "isEligible": true,
- "isQuotaFilled": true,
- "isRegistered": true,
- "principalId": 12345
}
], - "teamEligibility": {
- "isEligible": true,
- "isQuotaFilled": true,
- "isRegistered": true
}, - "teamId": "..."
}Updates the supplied access control list (ACL) for an evaluation. The ACL to be updated should have the ID of the evaluation. The user should have the proper permissions in order to update the ACL.
The ACL being updated.
| createdBy | string UNUSED -- maintained only for backwards compatibility with archived objects |
| creationDate | string Created Date |
| etag | string Synapse etag value |
| id | string The entity id |
| modifiedBy | string UNUSED -- maintained only for backwards compatibility with archived objects |
| modifiedOn | string UNUSED -- maintained only for backwards compatibility with archived objects |
Array of objects (ResourceAccess) The list of principals who can access the data with the allowed types of access for each. |
{- "createdBy": "...",
- "creationDate": "12345",
- "etag": "...",
- "id": "...",
- "modifiedBy": "...",
- "modifiedOn": "12345",
- "resourceAccess": [
- {
- "accessType": [
- "UPDATE_SUBMISSION",
- "CHANGE_PERMISSIONS"
], - "principalId": 12345
}, - {
- "accessType": [
- "UPDATE",
- "SEND_MESSAGE"
], - "principalId": 12345
}
]
}{- "createdBy": "...",
- "creationDate": "12345",
- "etag": "...",
- "id": "...",
- "modifiedBy": "...",
- "modifiedOn": "12345",
- "resourceAccess": [
- {
- "accessType": [
- "UPDATE_SUBMISSION",
- "CHANGE_PERMISSIONS"
], - "principalId": 12345
}, - {
- "accessType": [
- "UPDATE",
- "SEND_MESSAGE"
], - "principalId": 12345
}
]
}Gets a collection of Evaluations in which the user has SUBMIT permission, within a given range.
Note: The response will contain only those Evaluations on which the caller must is granted the ACCESS_TYPE.SUBMIT permission.
| activeOnly | boolean Default: false Retrieve active only evaluation queues |
| evaluationIds | string an optional, comma-delimited list of evaluation IDs to which the response is limited |
| limit | integer [ 10 .. 100 ] Default: 10 Limits the number of entities that will be fetched for this page. When null it will default to 10.' |
| offset | integer Default: 0 The offset index determines where this page will start from. An index of 0 is the first entity. When null it will default to 0. |
{- "results": [
- {
- "contentSource": "syn234444",
- "createdOn": "12345",
- "description": "Evaluation Queue",
- "etag": "aaaaa",
- "id": "12345",
- "name": "Test Evaluation",
- "ownerId": "22222",
- "quota": {
- "firstRoundStart": "12345",
- "numberOfRounds": 12345,
- "roundDurationMillis": 12345,
- "submissionLimit": 12345
}, - "status": "PLANNED",
- "submissionInstructionsMessage": "Instructions",
- "submissionReceiptMessage": "Received"
}
], - "totalNumberOfResults": 0
}Finds an Evaluation by name.
Note: The caller must be granted the ACCESS_TYPE.READ on the specified Evaluation.
| name required | string The name of the desired Evaluation. |
{- "contentSource": "syn234444",
- "createdOn": "12345",
- "description": "Evaluation Queue",
- "etag": "aaaaa",
- "id": "12345",
- "name": "Test Evaluation",
- "ownerId": "22222",
- "quota": {
- "firstRoundStart": "12345",
- "numberOfRounds": 12345,
- "roundDurationMillis": 12345,
- "submissionLimit": 12345
}, - "status": "PLANNED",
- "submissionInstructionsMessage": "Instructions",
- "submissionReceiptMessage": "Received"
}Creates a Submission and sends a submission notification email to the submitter's team members.
The passed request body should contain the following fields:
A Submission must be either a Team or an Individual submission. A Team submission must include a Team ID in the teamId field and the request must include a submissionEligibilityHash request parameter. A Team submission may also include a list of submission contributors. (The submitter is taken to be a contributor and need not be included in the list.) An individual submission must have a null teamId, a null or empty contributor list, and no submissionEligibilityHash parameter.
Note: The caller must be granted the ACCESS_TYPE.SUBMIT.
This call also creates an associated SubmissionStatus, initialized with a SubmissionStatusEnum value of RECEIVED.
| challengeEndpoint | string The portal endpoint prefix to the an entity/challenge page. The entity ID of the challenge project is appended to create the complete URL. In normal operation, this parameter should be omitted.' |
| etag | string The current eTag of the Entity being submitted |
| notificationUnsubscribeEndpoint | string The portal endpoint prefix for one-click email unsubscription. A signed, serialized token is appended to create the complete URL: NotificationSettingsSignedToken. In normal operation, this parameter should be omitted.' |
| submissionEligibilityHash | string The hash provided by the TeamSubmissionEligibility object. |
Array of objects (SubmissionContributor) User ids of the submitter and (if a team submission) the team members involved in creating the submission. | |
| createdOn | string The date on which Submission was created. |
| dockerDigest | string For Docker repositories, the digest from the commit. Null for other entity types. |
| dockerRepositoryName | string For Docker repositories, the name of the submitted repository. Null for other entity types. |
| entityBundleJSON | string The Bundled Entity and Annotations JSON at the time of submission. |
| entityId | string The Synapse ID of the Entity in this Submission. |
| evaluationId | string The Synapse ID of the Evaluation this Submission is for. |
| evaluationRoundId | string The Synapse ID of the EvaluationRound to which this was submitted. DO NOT specify a value for this. It will be filled in automatically upon creation of the Submission if the Evaluation is configured with an EvaluationRound. |
| id | string The unique, immutable Synapse ID of this Submission. |
| name | string The title of this Submission. |
| submitterAlias | string The alias for the user or team creating the submission. |
| teamId | string optional Team which collaborated on the submission |
| userId | string The Synapse ID of the user who created this Submission. |
| versionNumber | integer The submitted version number of the Entity. |
{- "contributors": [
- {
- "createdOn": "...",
- "principalId": "..."
}, - {
- "createdOn": "...",
- "principalId": "..."
}
], - "createdOn": "...",
- "dockerDigest": "...",
- "dockerRepositoryName": "...",
- "entityBundleJSON": "...",
- "entityId": "...",
- "evaluationId": "...",
- "evaluationRoundId": "...",
- "id": "...",
- "name": "...",
- "submitterAlias": "...",
- "teamId": "...",
- "userId": "...",
- "versionNumber": 12345
}{- "contributors": [
- {
- "createdOn": "...",
- "principalId": "..."
}, - {
- "createdOn": "...",
- "principalId": "..."
}
], - "createdOn": "...",
- "dockerDigest": "...",
- "dockerRepositoryName": "...",
- "entityBundleJSON": "...",
- "entityId": "...",
- "evaluationId": "...",
- "evaluationRoundId": "...",
- "id": "...",
- "name": "...",
- "submitterAlias": "...",
- "teamId": "...",
- "userId": "...",
- "versionNumber": 12345
}Deletes a Submission and its accompanying SubmissionStatus.
This service is intended to only be used by ChallengesInfrastructure service account.
Note: The caller must be granted the ACCESS_TYPE.DELETE_SUBMISSION on the specified Evaluation.
| subId required | string The ID of the Submission |
Gets a Submission.
Note: The caller must be granted the ACCESS_TYPE.READ_PRIVATE_SUBMISSION on the specified Evaluation.
| subId required | string The ID of the Submission |
{- "contributors": [
- {
- "createdOn": "...",
- "principalId": "..."
}, - {
- "createdOn": "...",
- "principalId": "..."
}
], - "createdOn": "...",
- "dockerDigest": "...",
- "dockerRepositoryName": "...",
- "entityBundleJSON": "...",
- "entityId": "...",
- "evaluationId": "...",
- "evaluationRoundId": "...",
- "id": "...",
- "name": "...",
- "submitterAlias": "...",
- "teamId": "...",
- "userId": "...",
- "versionNumber": 12345
}Gets a pre-signed URL to access a requested File contained within a specified Submission. Note: The caller must be granted the ACCESS_TYPE.READ_PRIVATE_SUBMISSION on the specified Evaluation.
| fileHandleId required | string the ID of the requested FileHandle contained in the Submission. |
| subId required | string The ID of the Submission |
| redirect | boolean To redirect |
"string"Gets the SubmissionStatus object associated with a specified Submission.
Note: The caller must be granted the ACCESS_TYPE.READ on the specified Evaluation. Furthermore, the caller must be granted the ACCESS_TYPE.READ_PRIVATE_SUBMISSION to see all data marked as "private" in the SubmissionStatus.
Service Limits
| resource | limit |
|---|---|
| The maximum frequency this method can be called | 1 calls per second |
| subId required | string The ID of the Submission |
{- "annotations": {
- "doubleAnnos": [
- {
- "isPrivate": true,
- "key": "...",
- "value": 12345
}, - {
- "isPrivate": true,
- "key": "...",
- "value": 12345
}
], - "longAnnos": [
- {
- "isPrivate": true,
- "key": "...",
- "value": 12345
}, - {
- "isPrivate": true,
- "key": "...",
- "value": 12345
}
], - "objectId": "...",
- "scopeId": "...",
- "stringAnnos": [
- {
- "isPrivate": true,
- "key": "...",
- "value": "..."
}, - {
- "isPrivate": true,
- "key": "...",
- "value": "..."
}
], - "version": 12345
}, - "canCancel": true,
- "cancelRequested": true,
- "entityId": "...",
- "etag": "...",
- "id": "...",
- "modifiedOn": "12345",
- "status": "ACCEPTED",
- "statusVersion": 12345,
- "submissionAnnotations": {
- "annotations": {
- "property1": {
- "type": "TIMESTAMP_MS",
- "value": [
- "...",
- "..."
]
}, - "property2": {
- "type": "TIMESTAMP_MS",
- "value": [
- "...",
- "..."
]
}
}, - "etag": "...",
- "id": "..."
}, - "versionNumber": 12345
}Updates a SubmissionStatus object.
Synapse employs an Optimistic Concurrency Control (OCC) scheme to handle concurrent updates. Each time an SubmissionStatus is updated a new etag will be issued to the SubmissionStatus. When an update is requested, Synapse will compare the etag of the passed SubmissionStatus with the current etag of the SubmissionStatus. If the etags do not match, then the update will be rejected with a PRECONDITION_FAILED (412) response. When this occurs, the caller should fetch the latest copy of the SubmissionStatus and re-apply any changes, then re-attempt the SubmissionStatus update.
Note: The caller must be granted the ACCESS_TYPE.UPDATE_SUBMISSION on the specified Evaluation.
Service Limits
| resource | limit |
|---|---|
| The maximum frequency this method can be called | 1 calls per second |
| subId required | string The ID of the Submission |
object (Annotations) Primary container object for Annotations on a Synapse object | |
| canCancel | boolean Can this submission be cancelled? By default, this will be set to False. Users can read this value. Only the queue's scoring application can change this value. |
| cancelRequested | boolean Has user requested to cancel this submission? By default, this will be set to False. Submission owner can read and request to change this value. |
| entityId | string The Synapse ID of the Entity in this Submission. |
| etag | string Synapse employs an Optimistic Concurrency Control (OCC) scheme to handle concurrent updates. The eTag changes every time an SubmissionStatus is updated; it is used to detect when a client's copy of an SubmissionStatus is out-of-date. |
| id | string The unique, immutable Synapse ID of the Submission. |
| modifiedOn | string The date on which this SubmissionStatus was last modified. |
| status | string (SubmissionStatusEnum) Enum: "OPEN" "CLOSED" "SCORED" "INVALID" "VALIDATED" "EVALUATION_IN_PROGRESS" "RECEIVED" "REJECTED" "ACCEPTED" The possible states of a Synapse Submission. |
| statusVersion | number A version of the status, auto-generated and auto-incremented by the system and read-only to the client. |
object (Annotations) Annotations are additional key-value pair metadata that are associated with an object. | |
| versionNumber | integer The version number of the Entity in this Submission. |
{- "annotations": {
- "doubleAnnos": [
- {
- "isPrivate": true,
- "key": "...",
- "value": 12345
}, - {
- "isPrivate": true,
- "key": "...",
- "value": 12345
}
], - "longAnnos": [
- {
- "isPrivate": true,
- "key": "...",
- "value": 12345
}, - {
- "isPrivate": true,
- "key": "...",
- "value": 12345
}
], - "objectId": "...",
- "scopeId": "...",
- "stringAnnos": [
- {
- "isPrivate": true,
- "key": "...",
- "value": "..."
}, - {
- "isPrivate": true,
- "key": "...",
- "value": "..."
}
], - "version": 12345
}, - "canCancel": true,
- "cancelRequested": true,
- "entityId": "...",
- "etag": "...",
- "id": "...",
- "modifiedOn": "12345",
- "status": "ACCEPTED",
- "statusVersion": 12345,
- "submissionAnnotations": {
- "annotations": {
- "property1": {
- "type": "TIMESTAMP_MS",
- "value": [
- "...",
- "..."
]
}, - "property2": {
- "type": "TIMESTAMP_MS",
- "value": [
- "...",
- "..."
]
}
}, - "etag": "...",
- "id": "..."
}, - "versionNumber": 12345
}{- "annotations": {
- "doubleAnnos": [
- {
- "isPrivate": true,
- "key": "...",
- "value": 12345
}, - {
- "isPrivate": true,
- "key": "...",
- "value": 12345
}
], - "longAnnos": [
- {
- "isPrivate": true,
- "key": "...",
- "value": 12345
}, - {
- "isPrivate": true,
- "key": "...",
- "value": 12345
}
], - "objectId": "...",
- "scopeId": "...",
- "stringAnnos": [
- {
- "isPrivate": true,
- "key": "...",
- "value": "..."
}, - {
- "isPrivate": true,
- "key": "...",
- "value": "..."
}
], - "version": 12345
}, - "canCancel": true,
- "cancelRequested": true,
- "entityId": "...",
- "etag": "...",
- "id": "...",
- "modifiedOn": "12345",
- "status": "ACCEPTED",
- "statusVersion": 12345,
- "submissionAnnotations": {
- "annotations": {
- "property1": {
- "type": "TIMESTAMP_MS",
- "value": [
- "...",
- "..."
]
}, - "property2": {
- "type": "TIMESTAMP_MS",
- "value": [
- "...",
- "..."
]
}
}, - "etag": "...",
- "id": "..."
}, - "versionNumber": 12345
}Create a new FormData object. The caller will own the resulting object and will have access to read, update, and delete the FormData object.
Note: The caller must have the SUBMIT permission on the FormGrup to reate/update/submit FormData.
| groupId required | string The identifier of the group that manages this data. |
| fileHandleId | string The fileHandleId for the data of the form. |
| name | string [ 3 .. 256 ] characters The name of the form. Required for FormData create. Optional for FormData update. Between 3 and 256 characters' |
{- "fileHandleId": "...",
- "name": "..."
}{- "createdBy": "...",
- "createdOn": "...",
- "dataFileHandleId": "...",
- "etag": "...",
- "formDataId": "...",
- "groupId": "...",
- "modifiedOn": "...",
- "name": "...",
- "submissionStatus": {
- "rejectionMessage": "...",
- "reviewedBy": "...",
- "reviewedOn": "...",
- "state": "REJECTED",
- "submittedOn": "..."
}
}Delete an existing FormData object. The caller must be the creator of the FormData object.
Note: Cannot delete a FormData object once it has been submitted and caller must have the SUBMIT permission on the identified group to update the group's ACL.
| id required | string The ID of the FormData. |
"string"Update an existing FormData object. The caller must be the creator of the FormData object. Once a FormData object has been submitted, it cannot be updated until it has been processed. If the submission is accepted it becomes immutable. Rejected submission are editable. Updating a rejected submission will change its status back to waiting_for_submission.
Note: The caller must have the SUBMIT permission on the FormGrup to create/update/submit FormData.
| id required | string The ID of the FormData. |
| fileHandleId | string The fileHandleId for the data of the form. |
| name | string [ 3 .. 256 ] characters The name of the form. Required for FormData create. Optional for FormData update. Between 3 and 256 characters' |
{- "fileHandleId": "...",
- "name": "..."
}{- "createdBy": "...",
- "createdOn": "...",
- "dataFileHandleId": "...",
- "etag": "...",
- "formDataId": "...",
- "groupId": "...",
- "modifiedOn": "...",
- "name": "...",
- "submissionStatus": {
- "rejectionMessage": "...",
- "reviewedBy": "...",
- "reviewedOn": "...",
- "state": "REJECTED",
- "submittedOn": "..."
}
}Called by the form reviewing service to accept a submitted data.
Note: The caller must have the READ_PRIVATE_SUBMISSION permission on the identified group to update the group's ACL.
| id required | string The ID of the FormData. |
{- "createdBy": "...",
- "createdOn": "...",
- "dataFileHandleId": "...",
- "etag": "...",
- "formDataId": "...",
- "groupId": "...",
- "modifiedOn": "...",
- "name": "...",
- "submissionStatus": {
- "rejectionMessage": "...",
- "reviewedBy": "...",
- "reviewedOn": "...",
- "state": "REJECTED",
- "submittedOn": "..."
}
}Called by the form reviewing service to reject a submitted data.
Note: The caller must have the READ_PRIVATE_SUBMISSION permission on the identified group to update the group's ACL.
| id required | string The ID of the FormData. |
| reason | string <= 500 characters The reason for the rejection. Limit 500 characters or less. |
{- "reason": "..."
}{- "createdBy": "...",
- "createdOn": "...",
- "dataFileHandleId": "...",
- "etag": "...",
- "formDataId": "...",
- "groupId": "...",
- "modifiedOn": "...",
- "name": "...",
- "submissionStatus": {
- "rejectionMessage": "...",
- "reviewedBy": "...",
- "reviewedOn": "...",
- "state": "REJECTED",
- "submittedOn": "..."
}
}Submit the identified FormData from review.
Note: The caller must have the SUBMIT permission on the identified group to update the group's ACL.
| id required | string The ID of the FormData. |
{- "createdBy": "...",
- "createdOn": "...",
- "dataFileHandleId": "...",
- "etag": "...",
- "formDataId": "...",
- "groupId": "...",
- "modifiedOn": "...",
- "name": "...",
- "submissionStatus": {
- "rejectionMessage": "...",
- "reviewedBy": "...",
- "reviewedOn": "...",
- "state": "REJECTED",
- "submittedOn": "..."
}
}List FormData objects and their associated status that match the filters of the provided request that are owned by the caller. Note: Only objects owned by the caller will be returned.
| filterByState | Array of strings (StateEnum) Items Enum: "WAITING_FOR_SUBMISSION" "SUBMITTED_WAITING_FOR_REVIEW" "ACCEPTED" "REJECTED" Only return results with a state that matches elements from this set. Required. Must include at least one element. |
| groupId | string The group identifier. Required. |
| nextPageToken | string The results are automatically paginated. To get the next page, forward the nextPageToken returned from the last request. |
{- "filterByState": [
- "SUBMITTED_WAITING_FOR_REVIEW",
- "ACCEPTED"
], - "groupId": "...",
- "nextPageToken": "..."
}{- "nextPageToken": "...",
- "page": [
- {
- "createdBy": "...",
- "createdOn": "...",
- "dataFileHandleId": "...",
- "etag": "...",
- "formDataId": "...",
- "groupId": "...",
- "modifiedOn": "...",
- "name": "...",
- "submissionStatus": {
- "rejectionMessage": "...",
- "reviewedBy": "...",
- "reviewedOn": "...",
- "state": "ACCEPTED",
- "submittedOn": "..."
}
}, - {
- "createdBy": "...",
- "createdOn": "...",
- "dataFileHandleId": "...",
- "etag": "...",
- "formDataId": "...",
- "groupId": "...",
- "modifiedOn": "...",
- "name": "...",
- "submissionStatus": {
- "rejectionMessage": "...",
- "reviewedBy": "...",
- "reviewedOn": "...",
- "state": "ACCEPTED",
- "submittedOn": "..."
}
}
]
}List FormData objects and their associated status that match the filters of the provided request for the entire group. This is used by service accounts to review submissions. Filtering by WAITING_FOR_SUBMISSION is not allowed for this call.
Note: The caller must have the READ_PRIVATE_SUBMISSION permission on the identified group to update the group's ACL.
| filterByState | Array of strings (StateEnum) Items Enum: "WAITING_FOR_SUBMISSION" "SUBMITTED_WAITING_FOR_REVIEW" "ACCEPTED" "REJECTED" Only return results with a state that matches elements from this set. Required. Must include at least one element. |
| groupId | string The group identifier. Required. |
| nextPageToken | string The results are automatically paginated. To get the next page, forward the nextPageToken returned from the last request. |
{- "filterByState": [
- "SUBMITTED_WAITING_FOR_REVIEW",
- "ACCEPTED"
], - "groupId": "...",
- "nextPageToken": "..."
}{- "nextPageToken": "...",
- "page": [
- {
- "createdBy": "...",
- "createdOn": "...",
- "dataFileHandleId": "...",
- "etag": "...",
- "formDataId": "...",
- "groupId": "...",
- "modifiedOn": "...",
- "name": "...",
- "submissionStatus": {
- "rejectionMessage": "...",
- "reviewedBy": "...",
- "reviewedOn": "...",
- "state": "ACCEPTED",
- "submittedOn": "..."
}
}, - {
- "createdBy": "...",
- "createdOn": "...",
- "dataFileHandleId": "...",
- "etag": "...",
- "formDataId": "...",
- "groupId": "...",
- "modifiedOn": "...",
- "name": "...",
- "submissionStatus": {
- "rejectionMessage": "...",
- "reviewedBy": "...",
- "reviewedOn": "...",
- "state": "ACCEPTED",
- "submittedOn": "..."
}
}
]
}Create a FormGroup with the provided name. This method is idempotent. If a group with the provided name already exists and the caller has READ permission the existing FormGroup will be returned.
The created FormGroup will have an Access Control List (ACL) with the creator listed as an administrator.
| name required | string [ 3 .. 256 ] characters A globally unique name for the group. Required. Between 3 and 256 characters. |
{- "createdBy": "...",
- "createdOn": "...",
- "groupId": "...",
- "name": "..."
}Get a FormGroup with the provided ID.
Note: The caller must have the READ permission on the identified group.
| id required | string The ID to the FormGroup. |
{- "createdBy": "...",
- "createdOn": "...",
- "groupId": "...",
- "name": "..."
}Get the Access Control List (ACL) for a FormGroup.
Note: The caller must have READ permission on the identified group.
| id required | string The ID of the FormGroup. |
{- "createdBy": "...",
- "creationDate": "12345",
- "etag": "...",
- "id": "...",
- "modifiedBy": "...",
- "modifiedOn": "12345",
- "resourceAccess": [
- {
- "accessType": [
- "UPDATE_SUBMISSION",
- "CHANGE_PERMISSIONS"
], - "principalId": 12345
}, - {
- "accessType": [
- "UPDATE",
- "SEND_MESSAGE"
], - "principalId": 12345
}
]
}Update the Access Control List (ACL) for a FormGroup.
The following define the permissions in this context:
Users automatically have read/update access to FormData that they create.
Note: The caller must have the CHANGE_PERMISSIONS permission on the identified group to update the group's ACL.
| id required | string The ID of the FormGroup. |
| createdBy | string UNUSED -- maintained only for backwards compatibility with archived objects |
| creationDate | string Created Date |
| etag | string Synapse etag value |
| id | string The entity id |
| modifiedBy | string UNUSED -- maintained only for backwards compatibility with archived objects |
| modifiedOn | string UNUSED -- maintained only for backwards compatibility with archived objects |
Array of objects (ResourceAccess) The list of principals who can access the data with the allowed types of access for each. |
{- "createdBy": "...",
- "creationDate": "12345",
- "etag": "...",
- "id": "...",
- "modifiedBy": "...",
- "modifiedOn": "12345",
- "resourceAccess": [
- {
- "accessType": [
- "UPDATE_SUBMISSION",
- "CHANGE_PERMISSIONS"
], - "principalId": 12345
}, - {
- "accessType": [
- "UPDATE",
- "SEND_MESSAGE"
], - "principalId": 12345
}
]
}{- "createdBy": "...",
- "creationDate": "12345",
- "etag": "...",
- "id": "...",
- "modifiedBy": "...",
- "modifiedOn": "12345",
- "resourceAccess": [
- {
- "accessType": [
- "UPDATE_SUBMISSION",
- "CHANGE_PERMISSIONS"
], - "principalId": 12345
}, - {
- "accessType": [
- "UPDATE",
- "SEND_MESSAGE"
], - "principalId": 12345
}
]
}This set of services provide project designers with tools to define their own schemas to control and validate metadata applied to Projects, Folders, and Files.
List all JSON schemas for an Organization. Each call will return a single page of schemas. Forward the provided nextPageToken to get the next page.
| nextPageToken | string Forward the returned 'nextPageToken' to get the next page of results. |
| organizationName | string The name of the Organization to list schemas for. |
{- "nextPageToken": "...",
- "organizationName": "..."
}{- "nextPageToken": "...",
- "page": [
- {
- "createdBy": "...",
- "createdOn": "...",
- "organizationId": "...",
- "organizationName": "...",
- "schemaId": "...",
- "schemaName": "..."
}, - {
- "createdBy": "...",
- "createdOn": "...",
- "organizationId": "...",
- "organizationName": "...",
- "schemaId": "...",
- "schemaName": "..."
}
]
}Create a new Organization by providing a unique organization name. The new Organization will have an auto-generated AcessControlList (ACL) granting the caller all relevant permission on the newly created Organization.
| organizationName | string [ 6 .. 250 ] characters ^((?!sagebionetworks)[a-zA-Z0-9.])*$ An organization name must be one or more alphanumeric strings each separated by a dot [ ('.')]. An alphanumeric string must start with a letter followed by one or more letters or digits a-z. Names are case insensitive. Names cannot contain the reserved word 'sagebionetworks' |
{- "organizationName": "testing0983"
}{- "createdBy": "...",
- "createdOn": "...",
- "id": "...",
- "name": "..."
}Delete the identified Organization. All schemas defined within the Organization''s name-space must first be deleted before an Organization can be deleted.
Note: The caller must be granted the DELETE permission on the Organization.
| id required | string The ID of the Organization. |
"string"Get the AcessControlList (ACL) associated with the identified Organization.
Note: The caller must be granted the READ permission to get an Organization's ACL.
| id required | string The ID of the Organization. |
{- "createdBy": "...",
- "creationDate": "12345",
- "etag": "...",
- "id": "...",
- "modifiedBy": "...",
- "modifiedOn": "12345",
- "resourceAccess": [
- {
- "accessType": [
- "UPDATE_SUBMISSION",
- "CHANGE_PERMISSIONS"
], - "principalId": 12345
}, - {
- "accessType": [
- "UPDATE",
- "SEND_MESSAGE"
], - "principalId": 12345
}
]
}Update the AccessControlList (ACL) for the identified Organization.
Note: The caller must be granted the CHANGE_PERMISSIONS permission to update an Organization's ACL.
| id required | string The ID of the Organization. |
| createdBy | string UNUSED -- maintained only for backwards compatibility with archived objects |
| creationDate | string Created Date |
| etag | string Synapse etag value |
| id | string The entity id |
| modifiedBy | string UNUSED -- maintained only for backwards compatibility with archived objects |
| modifiedOn | string UNUSED -- maintained only for backwards compatibility with archived objects |
Array of objects (ResourceAccess) The list of principals who can access the data with the allowed types of access for each. |
{- "createdBy": "...",
- "creationDate": "12345",
- "etag": "...",
- "id": "...",
- "modifiedBy": "...",
- "modifiedOn": "12345",
- "resourceAccess": [
- {
- "accessType": [
- "UPDATE_SUBMISSION",
- "CHANGE_PERMISSIONS"
], - "principalId": 12345
}, - {
- "accessType": [
- "UPDATE",
- "SEND_MESSAGE"
], - "principalId": 12345
}
]
}{- "createdBy": "...",
- "creationDate": "12345",
- "etag": "...",
- "id": "...",
- "modifiedBy": "...",
- "modifiedOn": "12345",
- "resourceAccess": [
- {
- "accessType": [
- "UPDATE_SUBMISSION",
- "CHANGE_PERMISSIONS"
], - "principalId": 12345
}, - {
- "accessType": [
- "UPDATE",
- "SEND_MESSAGE"
], - "principalId": 12345
}
]
}List all organizations. Each call will return a single page of Organizations. Forward the provided nextPageToken to get the next page.
| nextPageToken | string Forward the returned 'nextPageToken' to get the next page of results. |
{- "nextPageToken": "..."
}{- "nextPageToken": "...",
- "page": [
- {
- "createdBy": "...",
- "createdOn": "...",
- "id": "...",
- "name": "..."
}, - {
- "createdBy": "...",
- "createdOn": "...",
- "id": "...",
- "name": "..."
}
]
}Get the results of an asynchronous job that was started to create a new JSON schema.
Note: If the job has not completed, this method will return a status code of 202 (ACCEPTED) and the response body will be a AsynchronousJobStatus object.
| asyncToken required | string Forward the token returned when the job was started. |
{- "concreteType": "string",
- "newVersionInfo": {
- "$id": "...",
- "createdBy": "...",
- "createdOn": "...",
- "jsonSHA256Hex": "...",
- "organizationId": "...",
- "organizationName": "...",
- "schemaId": "...",
- "schemaName": "...",
- "semanticVersion": "...",
- "versionId": "..."
}, - "validationSchema": {
- "$id": "string",
- "$ref": "string",
- "$schema": "string",
- "_const": "string",
- "_else": { },
- "_enum": [
- "string"
], - "_if": { },
- "allOf": [
- { }
], - "anyOf": [
- { }
], - "definitions": {
- "property1": { },
- "property2": { }
}, - "description": "string",
- "format": "string",
- "items": { },
- "maxLength": 0,
- "minLength": 0,
- "oneOf": [
- { }
], - "pattern": "string",
- "properties": {
- "property1": { },
- "property2": { }
}, - "required": [
- "string"
], - "source": "string",
- "then": { },
- "title": "string",
- "type": "null"
}
}Start an asynchronous job to create a new JSON schema. A JSON schema must include an $id that is a relative URL of that schema. The pseudo-BNF syntax for a valid $id is as follows:
< $id > ::= < organization name > "-" < schema name > [ "-" < semantic version > ]
< organization name > ::= < dot separated alpha numeric >
< schema name > ::= < dot separated alpha numeric >
< semantic version > ::= See: https://semver.org/
< dot separated alpha numeric > :: = < alpha numeric > ( "." < alpha numeric > )*
< alpha numeric > ::= < letter > ( < identifier > )*
< letter > ::= [a-zA-Z]
< identifier > ::= < letter > | < digit >
< digit > :: = [0-9]
Take the following example, if organizationName="my.organization", schemaName="foo.Bar.json", and semanticVersion="0.1.2", then $id="my.organization-foo.Bar.json-0.1.2". Note: The semantic version is optional. When provide the semantic version is a label for a specific version that allows other schemas to reference it by its version. When a semantic version is include, that version of the schema is immutable. This means if a semantic version is included in a registered schema's $id, all $refs within the schema must also include a semantic version.
All $ref within a JSON schema must either be references to "definitions" within the schema or references other registered JSON schemas. References to non-registered schemas is not currently supported. To reference a registered schema $ref should equal the $id of the referenced schema. To reference the example schema from above use $ref="my.organization-foo.Bar.json-0.1.2".
Note: The semantic version of a referenced schema is optional. When the semantic version is excluded in a $ref the reference is assumed to reference the latest version of the schema. So $ref="my.organization-foo.Bar.json" would be a reference to the latest version of that schema. While $ref="my.organization-foo.Bar.json-0.1.2" would be a reference to the version 0.1.2
To monitor the progress of the job and to get the final results use: GET /schema/type/create/async/get/{asyncToken}
Note: The caller must be granted the CREATE permission on the Organization in the schema's $id.
| concreteType | string Concrete Type |
| dryRun | boolean When true, an attempt will be made to create the schema normally, but the resulting schema will not be retained. This can be used to validate a schema without actually registering it. The default value is false. |
object (JsonSchema) The JSON schema is defined by: json-schema.org, specifically draft-07. Only features listed here are currently supported. |
{- "concreteType": "string",
- "dryRun": true,
- "schema": {
- "$id": "string",
- "$ref": "string",
- "$schema": "string",
- "_const": "string",
- "_else": { },
- "_enum": [
- "string"
], - "_if": { },
- "allOf": [
- { }
], - "anyOf": [
- { }
], - "definitions": {
- "property1": { },
- "property2": { }
}, - "description": "string",
- "format": "string",
- "items": { },
- "maxLength": 0,
- "minLength": 0,
- "oneOf": [
- { }
], - "pattern": "string",
- "properties": {
- "property1": { },
- "property2": { }
}, - "required": [
- "string"
], - "source": "string",
- "then": { },
- "title": "string",
- "type": "null"
}
}{- "token": "..."
}Delete the given schema using its $id. If the $id excludes a semantic version, all versions of the schema will be deleted. If the $id includes a semantic version then just that version will be deleted. Caution: This operation cannot be undone.
Note: The caller must be granted the DELETE permission on the schema's organization.
| id required | string The $id of the schema to delete. |
Get a registered JSON schema using its $id.
| id required | string The $id of the schema to delete. |
{- "$id": "string",
- "$ref": "string",
- "$schema": "string",
- "_const": "string",
- "_else": { },
- "_enum": [
- "string"
], - "_if": { },
- "allOf": [
- { }
], - "anyOf": [
- { }
], - "definitions": {
- "property1": { },
- "property2": { }
}, - "description": "string",
- "format": "string",
- "items": { },
- "maxLength": 0,
- "minLength": 0,
- "oneOf": [
- { }
], - "pattern": "string",
- "properties": {
- "property1": { },
- "property2": { }
}, - "required": [
- "string"
], - "source": "string",
- "then": { },
- "title": "string",
- "type": "null"
}Get the results of an asynchronous job that was started to compile a 'validation' schema for a JSON schema.
Note: If the job has not completed, this method will return a status code of 202 (ACCEPTED) and the response body will be a AsynchronousJobStatus object.
| asyncToken required | string Forward the token returned when the job was started. |
{- "concreteType": "string",
- "validationSchema": {
- "$id": "string",
- "$ref": "string",
- "$schema": "string",
- "_const": "string",
- "_else": { },
- "_enum": [
- "string"
], - "_if": { },
- "allOf": [
- { }
], - "anyOf": [
- { }
], - "definitions": {
- "property1": { },
- "property2": { }
}, - "description": "string",
- "format": "string",
- "items": { },
- "maxLength": 0,
- "minLength": 0,
- "oneOf": [
- { }
], - "pattern": "string",
- "properties": {
- "property1": { },
- "property2": { }
}, - "required": [
- "string"
], - "source": "string",
- "then": { },
- "title": "string",
- "type": "null"
}
}To use a JSON schema for validation, the JSON schema plus all of its dependency schemas must be provided to a JSON schema validator. The 'validation' schema is simply a JSON schema with all of its dependencies added to the 'definitions' section of the schema, making the schema self-contained.
Use this call to start an asynchronous job that will compile the 'validation' schema for a given JSON schema $id.
To monitor the progress of the job and to get the final results use: GET /schema/type/validation/async/get/{asyncToken}
| $id | string The $id of the JSON schema to get the validation schema for. |
| concreteType | string Concrete Type |
{- "$id": "...",
- "concreteType": "..."
}{- "token": "..."
}List the version information for each version of a given schema. Each call will return a single page of results. Forward the provide nextPageToken to get the next page of results.
| nextPageToken | string Forward the returned 'nextPageToken' to get the next page of results. |
| organizationName | string The name of the Organization. |
| schemaName | string The name of the JsonSchema to list versions to list schemas for. |
{- "nextPageToken": "...",
- "organizationName": "...",
- "schemaName": "..."
}{- "nextPageToken": "...",
- "page": [
- {
- "$id": "...",
- "createdBy": "...",
- "createdOn": "...",
- "jsonSHA256Hex": "...",
- "organizationId": "...",
- "organizationName": "...",
- "schemaId": "...",
- "schemaName": "...",
- "semanticVersion": "...",
- "versionId": "..."
}, - {
- "$id": "...",
- "createdBy": "...",
- "createdOn": "...",
- "jsonSHA256Hex": "...",
- "organizationId": "...",
- "organizationName": "...",
- "schemaId": "...",
- "schemaName": "...",
- "semanticVersion": "...",
- "versionId": "..."
}
]
}The Membership Invitation Services create, retrieve and delete membership invitations.
Create a membership invitation and send an email notification to the invitee. The team must be specified.
Also, either an inviteeId or an inviteeEmail must be specified. Optionally, the creator may include an invitation message and/or expiration date for the invitation. If no expiration date is specified then the invitation never expires.
Note: The client must be an team manager of the specified Team to make this request.
| acceptInvitationEndpoint | string The portal endpoint prefix for one-click acceptance of the membership invitation. A signed, serialized token is appended to create the complete URL: JoinTeamSignedToken if an inviteeId is specified, or MembershipInvtnSignedToken if an inviteeEmail is specified. In normal operation, this parameter should be omitted. |
| notificationUnsubscribeEndpoint | string Default: "https://www.synapse.org/#!SignedToken:Settings/" The portal endpoint prefix for one-click email unsubscription. A signed, serialized token is appended to create the complete URL: NotificationSettingsSignedToken In normal operation, this parameter should be omitted. |
| createdBy | string The ID of the user that created this MembershipInvitation. |
| createdOn | string The date this MembershipInvitation was created. |
| expiresOn | string The date this invitation expires (optional). |
| id | string The id of the MembershipInvitation. |
| inviteeEmail | string The email address of the user being invited to join the Team. |
| inviteeId | string The principal ID of the user being invited to join the Team. |
| message | string The invitation message (optional). |
| teamId | string The id of the Team which the user is invited to join. |
{- "createdBy": "...",
- "createdOn": "...",
- "expiresOn": "...",
- "id": "...",
- "inviteeEmail": "...",
- "inviteeId": "...",
- "message": "...",
- "teamId": "..."
}{- "createdBy": "...",
- "createdOn": "...",
- "expiresOn": "...",
- "id": "...",
- "inviteeEmail": "...",
- "inviteeId": "...",
- "message": "...",
- "teamId": "..."
}Retrieve an invitation by ID
Note: The client must be an administrator of the Team referenced by the invitation or the invitee to make this request.
| id required | string the ID of the invitation. |
{- "createdBy": "...",
- "createdOn": "...",
- "expiresOn": "...",
- "id": "...",
- "inviteeEmail": "...",
- "inviteeId": "...",
- "message": "...",
- "teamId": "..."
}Retrieve an invitation by ID using a MembershipInvtnSignedToken for authorization
| id required | string the ID of the invitation. |
| concreteType | string Concrete Type |
| createdOn | string The date-time the token was generated. |
| expiresOn | string The date-time when this token expires. |
| hmac | string The hash message authentication code for the message. |
| membershipInvitationId | string The ID of the membership invitation. |
| version | integer The version of the key used to generate the HMAC. |
{- "concreteType": "...",
- "createdOn": "...",
- "expiresOn": "...",
- "hmac": "...",
- "membershipInvitationId": "...",
- "version": 12345
}{- "createdBy": "...",
- "createdOn": "...",
- "expiresOn": "...",
- "id": "...",
- "inviteeEmail": "...",
- "inviteeId": "...",
- "message": "...",
- "teamId": "..."
}Set the inviteeId of a MembershipInvitation.
A valid InviteeVerificationSignedToken must have an inviteeId equal to the id of the authenticated user and a membershipInvitationId equal to the id in the URI. This call will only succeed if the indicated MembershipInvitation has a null inviteeId and a non null inviteeEmail.
See https://sagebionetworks.jira.com/wiki/spaces/PLFM/pages/143628166/Invite+a+new+user+to+join+a+team for more information.
| id required | string the ID of the invitation. |
| concreteType | string Concrete Type |
| createdOn | string The date-time the token was generated. |
| expiresOn | string The date-time when this token expires. |
| hmac | string The hash message authentication code for the message. |
| inviteeId | string The ID of the invitee. |
| membershipInvitationId | string The ID of the MembershipInvitation to update. |
| version | integer The version of the key used to generate the HMAC. |
{- "concreteType": "...",
- "createdOn": "...",
- "expiresOn": "...",
- "hmac": "...",
- "inviteeId": "...",
- "membershipInvitationId": "...",
- "version": 12345
}"string"Verify whether the inviteeEmail of the indicated MembershipInvitation is associated with the authenticated user.
If it is, the response body will contain an InviteeVerificationSignedToken. If it is not, a response status 403 Forbidden will be returned. InviteeVerificationSignedTokens generated by this service expire 24 hours from creation.
See https://sagebionetworks.jira.com/wiki/spaces/PLFM/pages/143628166/Invite+a+new+user+to+join+a+team for more information.
| id required | string the ID of the invitation. |
{- "concreteType": "...",
- "createdOn": "...",
- "expiresOn": "...",
- "hmac": "...",
- "inviteeId": "...",
- "membershipInvitationId": "...",
- "version": 12345
}Retrieve the open invitations from a Team, optionally filtering by the invitee. An invitation is only open if it has not expired and if the user has not joined the Team. Note: certain fields may be omitted when returned if the field value is null
| id required | string the ID of the Team. |
| inviteeId | string the ID of the Synapse user to which invitations have been extended |
| limit | integer [ 10 .. 100 ] Default: 10 the maximum number of invitations to return |
| offset | integer >= 0 Default: 0 the starting index of the returned results |
{- "effectiveSchema": "...",
- "results": [
- {
- "createdBy": "...",
- "createdOn": "...",
- "expiresOn": "...",
- "id": "...",
- "inviteeEmail": "...",
- "inviteeId": "...",
- "message": "...",
- "teamId": "..."
}, - {
- "createdBy": "...",
- "createdOn": "...",
- "expiresOn": "...",
- "id": "...",
- "inviteeEmail": "...",
- "inviteeId": "...",
- "message": "...",
- "teamId": "..."
}
], - "totalNumberOfResults": 12345
}Retrieve the open invitations to a user, optionally filtering by the Team of origin. An invitation is only open if it has not expired and if the user has not joined the Team. Note: certain fields may be omitted when returned if the field value is null
| id required | string The ID of the Synapse user. |
| limit | integer Default: 10 the maximum number of invitations to return. |
| offset | integer Default: 0 the starting index of the returned results. |
| teamId | string the ID of the Team extending the invitations |
{- "effectiveSchema": "...",
- "results": [
- {
- "createdBy": "...",
- "createdOn": "...",
- "expiresOn": "...",
- "id": "...",
- "inviteeEmail": "...",
- "inviteeId": "...",
- "message": "...",
- "teamId": "..."
}, - {
- "createdBy": "...",
- "createdOn": "...",
- "expiresOn": "...",
- "id": "...",
- "inviteeEmail": "...",
- "inviteeId": "...",
- "message": "...",
- "teamId": "..."
}
], - "totalNumberOfResults": 12345
}The Membership Request Services create, retrieve and delete membership requests.
Create a membership request and send an email notification to the administrators of the team.
The Team must be specified. Optionally, the creator may include a message and/or expiration date for the request.
If no expiration date is specified then the request never expires.
| acceptRequestEndpoint | string Default: "https://www.synapse.org/#!SignedToken:JoinTeam/" The portal end-point for one-click acceptance of the membership request. A signed, serialized token is appended to create the complete: JoinTeamSignedToken In normal operation, this parameter should be omitted. |
| notificationUnsubscribeEndpoint | string Default: "https://www.synapse.org/#!SignedToken:Settings/" The portal prefix for one-click email unsubscription. A signed, serialized token is appended to create the complete: NotificationSettingsSignedToken In normal operation, this parameter should be omitted. |
| createdBy | string The ID of the user that created this MembershipRequest. |
| createdOn | string The date this MembershipRequest was created. |
| expiresOn | string The date this MembershipRequest expires (optional). |
| id | string The id of the MembershipRequest. |
| message | string The request message (optional). |
| teamId | string The id of the Team to which the request is sent. |
| userId | string The id of the user for whom membership is requested. |
{- "createdBy": "...",
- "createdOn": "...",
- "expiresOn": "...",
- "id": "...",
- "message": "...",
- "teamId": "...",
- "userId": "..."
}{- "createdBy": "...",
- "createdOn": "...",
- "expiresOn": "...",
- "id": "...",
- "message": "...",
- "teamId": "...",
- "userId": "..."
}Retrieve an request by ID
Note: The client must be the creator of the membership request to make this request.'
| id required | string The ID for a membership request. |
{- "createdBy": "...",
- "createdOn": "...",
- "expiresOn": "...",
- "id": "...",
- "message": "...",
- "teamId": "...",
- "userId": "..."
}Retrieve the open requests submitted to a Team, optionally filtering by the requester. An request is only open if it has not expired and if the requester has not been added the Team.
Service Limits
| resource | limit |
|---|---|
| The maximum frequency this method can be called | 40 calls per minute |
| id required | string the ID of the Team. |
| limit | integer [ 10 .. 100 ] Default: 10 the maximum number of requests to return (default 10) |
| offset | integer >= 0 Default: 0 the starting index of the returned results (default 0) |
| requestorId | string the ID of the user requesting admission to the Team |
{- "effectiveSchema": "...",
- "results": [
- {
- "createdBy": "...",
- "createdOn": "...",
- "expiresOn": "...",
- "id": "...",
- "message": "...",
- "teamId": "...",
- "userId": "..."
}, - {
- "createdBy": "...",
- "createdOn": "...",
- "expiresOn": "...",
- "id": "...",
- "message": "...",
- "teamId": "...",
- "userId": "..."
}
], - "totalNumberOfResults": 12345
}Retrieve the open requests submitted by a user, optionally filtering by the Team. An request is only open if it has not expired and if the requester has not been added the Team. Note: The 'id' in the URI must be the same ID as that of the authenticated user issuing the request.
| id required | string The ID of the Synapse user. |
| limit | integer Default: 10 the maximum number of requests to return |
| offset | integer >= 0 Default: 0 the starting index of the returned results. |
| teamId | string ID of a Synapse Team. |
{- "effectiveSchema": "...",
- "results": [
- {
- "createdBy": "...",
- "createdOn": "...",
- "expiresOn": "...",
- "id": "...",
- "message": "...",
- "teamId": "...",
- "userId": "..."
}, - {
- "createdBy": "...",
- "createdOn": "...",
- "expiresOn": "...",
- "id": "...",
- "message": "...",
- "teamId": "...",
- "userId": "..."
}
], - "totalNumberOfResults": 12345
}Provides REST APIs for sending messages to other Synapse users and for commenting on Synapse entities.
Adds the owner of the given entity as an additional recipient of the message.
| id required | string The ID of an Entity. |
| bcc | string The email addresses in the 'bcc' field of the email message |
| cc | string The email addresses in the 'cc' field of the email message |
| createdBy | string The unique identifier of the sender of this message |
| createdOn | string When this message was created |
| fileHandleId | string The S3 file handle storing the body of this message. Note: The file's mime type should be 'text/plain' or 'text/html'. If no character encoding is specified, then UTF-8 is assumed. |
| id | string The unique identifier of the message or comment |
| inReplyTo | string The unique identifier of the message being replied to. Can be null |
| inReplyToRoot | string The unique identifier of the root message being replied to |
| isNotificationMessage | boolean A notification message is sent from a noreply email address, delivery failures are not sent back to the sender |
| notificationUnsubscribeEndpoint | string the portal prefix for one-click email unsubscription. A signed, serialized token is appended to create the complete URL. If omitted, the default endpoint will be used. |
| recipients | Array of strings The unique identifiers of the intended recipients of a message |
| subject | string Topic of this message. Optional |
| to | string The email addresses in the 'to' field of the email message |
| userProfileSettingEndpoint | string the portal link to user profile setting page. If omitted, the default endpoint will be used. |
| withProfileSettingLink | boolean should the user profile setting link be included in the email? |
| withUnsubscribeLink | boolean should the unsubscribe link be included in the email? |
{- "bcc": "...",
- "cc": "...",
- "createdBy": "...",
- "createdOn": "...",
- "fileHandleId": "...",
- "id": "...",
- "inReplyTo": "...",
- "inReplyToRoot": "...",
- "isNotificationMessage": true,
- "notificationUnsubscribeEndpoint": "...",
- "recipients": [
- "...",
- "..."
], - "subject": "...",
- "to": "...",
- "userProfileSettingEndpoint": "...",
- "withProfileSettingLink": true,
- "withUnsubscribeLink": true
}{- "bcc": "...",
- "cc": "...",
- "createdBy": "...",
- "createdOn": "...",
- "fileHandleId": "...",
- "id": "...",
- "inReplyTo": "...",
- "inReplyToRoot": "...",
- "isNotificationMessage": true,
- "notificationUnsubscribeEndpoint": "...",
- "recipients": [
- "...",
- "..."
], - "subject": "...",
- "to": "...",
- "userProfileSettingEndpoint": "...",
- "withProfileSettingLink": true,
- "withUnsubscribeLink": true
}Sends a message.
The "fileHandleId" field should point to a plain text file containing the body of the message. The file should be uploaded prior to this call.
The "recipients" field should hold a set of IDs corresponding to the recipients of the message.
All other fields are optional, including the "subject" field.
To chain messages together into a conversation, specify the message you are replying to via the "inReplyTo" field.
See the MessageToUser, MessageContent, and MessageRecipientSet schema for more information.
In most cases, message delivery is asynchronous to message creation.
i.e. It may take several seconds for a message to appear in a user's inbox.
Notes:
Unauthorized delivery, such as messaging a team you are not affiliated with, will result in a bounce message being sent to your email.
There are limits on the number of message recipients you can specify (50) and the rate at which you can send messages (10 per minute). Neither these restrictions, nor the restriction that you can''t message a Team with which you are unaffiliated, apply if you are a member of the Trusted Message Senders Team.
| bcc | string The email addresses in the 'bcc' field of the email message |
| cc | string The email addresses in the 'cc' field of the email message |
| createdBy | string The unique identifier of the sender of this message |
| createdOn | string When this message was created |
| fileHandleId | string The S3 file handle storing the body of this message. Note: The file's mime type should be 'text/plain' or 'text/html'. If no character encoding is specified, then UTF-8 is assumed. |
| id | string The unique identifier of the message or comment |
| inReplyTo | string The unique identifier of the message being replied to. Can be null |
| inReplyToRoot | string The unique identifier of the root message being replied to |
| isNotificationMessage | boolean A notification message is sent from a noreply email address, delivery failures are not sent back to the sender |
| notificationUnsubscribeEndpoint | string the portal prefix for one-click email unsubscription. A signed, serialized token is appended to create the complete URL. If omitted, the default endpoint will be used. |
| recipients | Array of strings The unique identifiers of the intended recipients of a message |
| subject | string Topic of this message. Optional |
| to | string The email addresses in the 'to' field of the email message |
| userProfileSettingEndpoint | string the portal link to user profile setting page. If omitted, the default endpoint will be used. |
| withProfileSettingLink | boolean should the user profile setting link be included in the email? |
| withUnsubscribeLink | boolean should the unsubscribe link be included in the email? |
{- "bcc": "...",
- "cc": "...",
- "createdBy": "...",
- "createdOn": "...",
- "fileHandleId": "...",
- "id": "...",
- "inReplyTo": "...",
- "inReplyToRoot": "...",
- "isNotificationMessage": true,
- "notificationUnsubscribeEndpoint": "...",
- "recipients": [
- "...",
- "..."
], - "subject": "...",
- "to": "...",
- "userProfileSettingEndpoint": "...",
- "withProfileSettingLink": true,
- "withUnsubscribeLink": true
}{- "bcc": "...",
- "cc": "...",
- "createdBy": "...",
- "createdOn": "...",
- "fileHandleId": "...",
- "id": "...",
- "inReplyTo": "...",
- "inReplyToRoot": "...",
- "isNotificationMessage": true,
- "notificationUnsubscribeEndpoint": "...",
- "recipients": [
- "...",
- "..."
], - "subject": "...",
- "to": "...",
- "userProfileSettingEndpoint": "...",
- "withProfileSettingLink": true,
- "withUnsubscribeLink": true
}Fetches the specified message.
The authenticated user must be either the sender or receiver of the message.
| messageId required | string The ID of the message. |
{- "bcc": "...",
- "cc": "...",
- "createdBy": "...",
- "createdOn": "...",
- "fileHandleId": "...",
- "id": "...",
- "inReplyTo": "...",
- "inReplyToRoot": "...",
- "isNotificationMessage": true,
- "notificationUnsubscribeEndpoint": "...",
- "recipients": [
- "...",
- "..."
], - "subject": "...",
- "to": "...",
- "userProfileSettingEndpoint": "...",
- "withProfileSettingLink": true,
- "withUnsubscribeLink": true
}Retrieves messages belonging to the same thread as the given message.
The current authenticated user will be either the sender or receiver of all returned messages.
By default, the most recent messages are returned first. To flip the ordering, set the "descending" parameter to "false". To change the way the messages are ordered, set the "orderBy" parameter to either "SEND_DATE" or "SUBJECT".
| messageId required | string The ID of the message. |
| descending | boolean Default: true If true, returns the most recent messages. |
| limit | integer >= 10 Default: 10 Limits the number of messages |
| offset | integer >= 0 Default: 0 The offset index determines where this page will start from. |
| orderBy | string Default: "SEND_DATE" Enum: "SUBJECT" "SEND_DATE" Order by |
{ }{- "results": [
- {
- "bcc": "...",
- "cc": "...",
- "createdBy": "...",
- "createdOn": "...",
- "fileHandleId": "...",
- "id": "...",
- "inReplyTo": "...",
- "inReplyToRoot": "...",
- "isNotificationMessage": true,
- "notificationUnsubscribeEndpoint": "...",
- "recipients": [
- "...",
- "..."
], - "subject": "...",
- "to": "...",
- "userProfileSettingEndpoint": "...",
- "withProfileSettingLink": true,
- "withUnsubscribeLink": true
}, - {
- "bcc": "...",
- "cc": "...",
- "createdBy": "...",
- "createdOn": "...",
- "fileHandleId": "...",
- "id": "...",
- "inReplyTo": "...",
- "inReplyToRoot": "...",
- "isNotificationMessage": true,
- "notificationUnsubscribeEndpoint": "...",
- "recipients": [
- "...",
- "..."
], - "subject": "...",
- "to": "...",
- "userProfileSettingEndpoint": "...",
- "withProfileSettingLink": true,
- "withUnsubscribeLink": true
}
], - "totalNumberOfResults": 12345
}Get the actual URL of the file associated with the message
Note: This call will result in a HTTP temporary redirect (307), to the actual file URL if the caller meets all of the download requirements.
| messageId required | string The ID of the message. |
| redirect | boolean When set to false, the URL will be returned as text/plain instead of redirecting.' |
"string"Forwards a message to the specified set of recipients.
The authenticated user must be either the sender or receiver of the forwarded message.
| messageId required | string The ID of the message. |
| recipients | Array of strings The unique identifiers of the intended recipients of a message |
{- "recipients": [
- "...",
- "..."
]
}{- "bcc": "...",
- "cc": "...",
- "createdBy": "...",
- "createdOn": "...",
- "fileHandleId": "...",
- "id": "...",
- "inReplyTo": "...",
- "inReplyToRoot": "...",
- "isNotificationMessage": true,
- "notificationUnsubscribeEndpoint": "...",
- "recipients": [
- "...",
- "..."
], - "subject": "...",
- "to": "...",
- "userProfileSettingEndpoint": "...",
- "withProfileSettingLink": true,
- "withUnsubscribeLink": true
}Retrieves the current authenticated user's inbox.
It may take several seconds for a message to appear in the inbox after creation. By default, the most recent unread messages are returned first. To flip the ordering, set the "descending" parameter to "false". To change the way the messages are ordered, set the "orderBy" parameter to either "SEND_DATE" or "SUBJECT".
To retrieve messages that have been read or archived, set the "inboxFilter" parameter to a comma-separated list of values defined in the MessageStatusType
| descending | boolean Default: true By default, returns most recent unread messages. |
| inboxFilter | string Default: "UNREAD" Inbox filter |
| limit | integer >= 10 Default: 10 Limits the number of messages |
| offset | integer >= 0 Default: 0 The offset index determines where this page will start from. |
| orderBy | string Default: "SEND_DATE" Enum: "SUBJECT" "SEND_DATE" Order by |
{ }{- "effectiveSchema": "...",
- "results": [
- {
- "message": {
- "bcc": "...",
- "cc": "...",
- "createdBy": "...",
- "createdOn": "...",
- "fileHandleId": "...",
- "id": "...",
- "inReplyTo": "...",
- "inReplyToRoot": "...",
- "isNotificationMessage": true,
- "notificationUnsubscribeEndpoint": "...",
- "recipients": [
- "...",
- "..."
], - "subject": "...",
- "to": "...",
- "userProfileSettingEndpoint": "...",
- "withProfileSettingLink": true,
- "withUnsubscribeLink": true
}, - "status": {
- "messageId": "...",
- "recipientId": "...",
- "status": "ARCHIVED"
}
}, - {
- "message": {
- "bcc": "...",
- "cc": "...",
- "createdBy": "...",
- "createdOn": "...",
- "fileHandleId": "...",
- "id": "...",
- "inReplyTo": "...",
- "inReplyToRoot": "...",
- "isNotificationMessage": true,
- "notificationUnsubscribeEndpoint": "...",
- "recipients": [
- "...",
- "..."
], - "subject": "...",
- "to": "...",
- "userProfileSettingEndpoint": "...",
- "withProfileSettingLink": true,
- "withUnsubscribeLink": true
}, - "status": {
- "messageId": "...",
- "recipientId": "...",
- "status": "ARCHIVED"
}
}
], - "totalNumberOfResults": 12345
}Retrieves the current authenticated user''s outbox.
By default, the most recent messages are returned first. To flip the ordering, set the "descending" parameter to "false". To change the way the messages are ordered, set the "orderBy" parameter to either "SEND_DATE" or "SUBJECT".
| descending | boolean Default: true By default, the most recent message are returned. |
| limit | integer >= 10 Default: 10 Limits the number of messages |
| offset | integer >= 0 Default: 0 The offset index determines where this page will start from. |
| orderBy | string Default: "SEND_DATE" Enum: "SUBJECT" "SEND_DATE" Order by |
{ }{- "results": [
- {
- "bcc": "...",
- "cc": "...",
- "createdBy": "...",
- "createdOn": "...",
- "fileHandleId": "...",
- "id": "...",
- "inReplyTo": "...",
- "inReplyToRoot": "...",
- "isNotificationMessage": true,
- "notificationUnsubscribeEndpoint": "...",
- "recipients": [
- "...",
- "..."
], - "subject": "...",
- "to": "...",
- "userProfileSettingEndpoint": "...",
- "withProfileSettingLink": true,
- "withUnsubscribeLink": true
}, - {
- "bcc": "...",
- "cc": "...",
- "createdBy": "...",
- "createdOn": "...",
- "fileHandleId": "...",
- "id": "...",
- "inReplyTo": "...",
- "inReplyToRoot": "...",
- "isNotificationMessage": true,
- "notificationUnsubscribeEndpoint": "...",
- "recipients": [
- "...",
- "..."
], - "subject": "...",
- "to": "...",
- "userProfileSettingEndpoint": "...",
- "withProfileSettingLink": true,
- "withUnsubscribeLink": true
}
], - "totalNumberOfResults": 12345
}Updates the current status of a message relative to the current authenticated user.
Note: the "recipientId" field of the request body will be ignored.'
| messageId | string The unique identifier of the message. |
| recipientId | string The unique identifier of the recipient of this message. |
| status | string (MessageStatusType) Enum: "READ" "UNREAD" "ARCHIVED" The status of the message, from the RECIPIENT'S standpoint |
{- "messageId": "...",
- "recipientId": "...",
- "status": "ARCHIVED"
}"string"A Synapse TableEntity model object represents the metadata of a table. Each TableEntity is defined by a list of ColumnModel IDs. Use POST /column to create new ColumnModel objects. Each ColumnModel object is immutable, so to change a column of a table a new column must be added and the old column must be removed. TableEntities can be created, updated, read and deleted like any other entity.
Given the ID of a TableEntity, get its list of <ahref="${org.sagebionetworks.repo.model.table.ColumnModel}">ColumnModels that are currently assigned to the table.
Service Limits
| resource | limit |
|---|---|
| The maximum frequency this method can be called | 6 calls per minute |
| id required | string The ID of a Table. |
{- "results": [
- {
- "columnType": "LINK",
- "defaultValue": "...",
- "enumValues": [
- "...",
- "..."
], - "facetType": "range",
- "id": "...",
- "maximumListLength": 100,
- "maximumSize": 12345,
- "name": "..."
}, - {
- "columnType": "SUBMISSIONID",
- "defaultValue": "...",
- "enumValues": [
- "...",
- "..."
], - "facetType": "range",
- "id": "...",
- "maximumListLength": 100,
- "maximumSize": 12345,
- "name": "..."
}
], - "totalNumberOfResults": 12345
}Get the actual URL of the file associated with a specific version of a row and file handle column.
Note: This call will result in a HTTP temporary redirect (307), to the actual file URL if the caller meets all of the download requirements.
| columnId required | string The ID of the Table column |
| id required | string The ID of the FileEntity to get. |
| rowId required | number The ID of the Table Row |
| versionNumber required | number The version of the Table Row |
| redirect | boolean When set to false, the URL will be returned as text/plain instead of redirecting. |
"string"Get the preview URL of the file associated with a specific version of a row and file handle column.
Note: This call will result in a HTTP temporary redirect (307), to the actual file URL if the caller meets all of the download requirements.
| columnId required | string The ID of the Table column |
| id required | string The ID of the FileEntity to get. |
| rowId required | number The ID of the Table Row |
| versionNumber required | number The version of the Table Row |
| redirect | boolean When set to false, the URL will be returned as text/plain instead of redirecting. |
"string"Asynchronously get the results of a csv download started with POST
Note: When the result is not ready yet, this method will return a status code of 202 (ACCEPTED) and the response body will be a AsynchronousJobStatus
| id required | string The ID of a TableEntity. |
| asyncToken required | string Async Token |
{- "concreteType": "...",
- "etag": "...",
- "headers": [
- {
- "columnType": "LINK",
- "id": "...",
- "name": "..."
}, - {
- "columnType": "STRING_LIST",
- "id": "...",
- "name": "..."
}
], - "resultsFileHandleId": "...",
- "tableId": "..."
}Asynchronously start a csv download. Use the returned job id and /entity/{id}/table/download/csv/async/get to get the results of the query
| id required | string The ID of a TableEntity. |
| additionalFilters | Array of objects (QueryFilter) Appends additional filters to the SQL query. These are applied before facets. Filters within the list have an AND relationship. If a WHERE clause already exists on the SQL query or facets are selected, it will also be ANDed with the query generated by these additional filters. |
| includeEntityEtag | boolean Optional, default false. When true, a query results against views will include the Etag of each entity in the results. Note: The etag is necessary to update Entities in the view. |
| limit required | integer The optional limit to the results DownloadFromTableRequest DownloadFromTableRequest |
| offset | integer The optional offset into the results |
Array of objects (FacetColumnRequest) The selected facet filters. | |
Array of objects (SortItem) To sort values | |
| sql | string The SQL query string. |
| concreteType | string Concrete Type |
object (CsvTableDescriptor) The description of a csv for upload or download. | |
| entityId | string Entity Id |
| includeRowIdAndRowVersion | boolean Default: true Should the first two columns contain the row ID and row version? The default value is 'true'. |
| writeHeader | boolean Default: true Should the first line contain the columns names as a header in the resulting file? Set to 'true' to include the headers else, 'false'. The default value is 'true'. |
{- "additionalFilters": [
- { },
- { }
], - "includeEntityEtag": true,
- "limit": "DownloadFromTableRequest",
- "offset": 12345,
- "selectedFacets": [
- {
- "columnName": "...",
- "concreteType": "..."
}, - {
- "columnName": "...",
- "concreteType": "..."
}
], - "sort": [
- {
- "column": "...",
- "direction": "ASC"
}, - {
- "column": "...",
- "direction": "DESC"
}
], - "sql": "...",
- "concreteType": "string",
- "csvTableDescriptor": {
- "escapeCharacter": "...",
- "isFirstLineHeader": true,
- "lineEnd": "...",
- "quoteCharacter": "...",
- "separator": "..."
}, - "entityId": "string",
- "includeRowIdAndRowVersion": true,
- "writeHeader": true
}{- "token": "..."
}This method is used to get file handle information for rows in a TableEntity. The columns in the passed in RowReferenceSet need to be FILEHANDLEID columns and the rows in the passed in RowReferenceSet need to exists (a 400 will be returned if a row ID is provided that does not actually exist). The order of the returned rows of file handles is the same as the order of the rows requested, and the order of the file handles in each row is the same as the order of the columns requested.
Note: The caller must have the READ permission on the TableEntity to make this call.
Service Limits
| resource | limit |
|---|---|
| The maximum frequency this method can be called | 1 calls per second |
| id required | string The ID of a TableEntity. |
| etag | string When a RowReferenceSet is returned from a table update, this will be set to the current etag of the table. |
Array of objects (SelectColumn) The list of ColumnModels ID that describes the rows of this set. | |
Array of objects (RowReference) Each RowReference of this list refers to a single version of a single row of a TableEntity. | |
| tableId | string The ID of the TableEntity than owns these rows |
{- "etag": "...",
- "headers": [
- {
- "columnType": "DATE",
- "id": "...",
- "name": "..."
}, - {
- "columnType": "USERID",
- "id": "...",
- "name": "..."
}
], - "rows": [
- {
- "rowId": 12345,
- "versionNumber": 12345
}, - {
- "rowId": 12345,
- "versionNumber": 12345
}
], - "tableId": "..."
}{- "headers": [
- {
- "columnType": "EVALUATIONID",
- "id": "...",
- "name": "..."
}, - {
- "columnType": "DATE_LIST",
- "id": "...",
- "name": "..."
}
], - "rows": [
- {
- "list": [
- {
- "concreteType": "...",
- "contentMd5": "...",
- "contentSize": 12345,
- "contentType": "...",
- "createdBy": "...",
- "createdOn": "...",
- "etag": "...",
- "fileName": "...",
- "id": "...",
- "storageLocationId": 12345
}, - {
- "concreteType": "...",
- "contentMd5": "...",
- "contentSize": 12345,
- "contentType": "...",
- "createdBy": "...",
- "createdOn": "...",
- "etag": "...",
- "fileName": "...",
- "id": "...",
- "storageLocationId": 12345
}
]
}, - {
- "list": [
- {
- "concreteType": "...",
- "contentMd5": "...",
- "contentSize": 12345,
- "contentType": "...",
- "createdBy": "...",
- "createdOn": "...",
- "etag": "...",
- "fileName": "...",
- "id": "...",
- "storageLocationId": 12345
}, - {
- "concreteType": "...",
- "contentMd5": "...",
- "contentSize": 12345,
- "contentType": "...",
- "createdBy": "...",
- "createdOn": "...",
- "etag": "...",
- "fileName": "...",
- "id": "...",
- "storageLocationId": 12345
}
]
}
], - "tableId": "..."
}Asynchronously get the results of a query started with POST /entity/{id}/table/query/async/start
Note: When the result is not ready yet, this method will return a status code of 202 (ACCEPTED) and the response body will be a AsynchronousJobStatus object.
| asyncToken required | string Async Token |
| id required | string The ID of the TableEntity. |
{- "columnModels": [
- {
- "columnType": "DATE_LIST",
- "defaultValue": "...",
- "enumValues": [
- "...",
- "..."
], - "facetType": "enumeration",
- "id": "...",
- "maximumListLength": 100,
- "maximumSize": 12345,
- "name": "..."
}, - {
- "columnType": "DOUBLE",
- "defaultValue": "...",
- "enumValues": [
- "...",
- "..."
], - "facetType": "range",
- "id": "...",
- "maximumListLength": 100,
- "maximumSize": 100,
- "name": "..."
}
], - "concreteType": "...",
- "facets": [
- {
- "columnName": "...",
- "concreteType": "...",
- "facetType": "enumeration"
}, - {
- "columnName": "...",
- "concreteType": "...",
- "facetType": "enumeration"
}
], - "lastUpdatedOn": "...",
- "maxRowsPerPage": 12345,
- "queryCount": 12345,
- "queryResult": {
- "concreteType": "...",
- "nextPageToken": {
- "concreteType": "...",
- "entityId": "...",
- "token": "..."
}, - "queryResults": {
- "concreteType": "...",
- "etag": "...",
- "headers": [
- { },
- { }
], - "rows": [
- { },
- { }
], - "tableId": "..."
}
}, - "selectColumns": [
- {
- "columnType": "USERID_LIST",
- "id": "...",
- "name": "..."
}, - {
- "columnType": "EVALUATIONID",
- "id": "...",
- "name": "..."
}
], - "sumFileSizes": {
- "greaterThan": true,
- "sumFileSizesBytes": 12345
}
}Asynchronously start a query. Use the returned job id and GET /entity/{id}/table/query/async/get to get the results of the query
Using a 'SQL like' syntax, query the current version of the rows in a single table. The following pseudo-syntax is the basic supported format:
SELECT
[ALL | DISTINCT] select_expr [, select_expr ...]
FROM synapse_table_id
[WHERE where_condition]
[GROUP BY {col_name [, [col_name * ...] }
[ORDER BY {col_name [ [ASC | DESC] [, col_name [ [ASC | DESC]]}
[LIMIT row_count [ OFFSET offset ]]
Note: Sub-queries and joining tables is not supported.
This services depends on an index that is created/update asynchronously from table creation and update events. This means there could be short window of time when the index is inconsistent with the true state of the table. When the index is out-of-synch, then a status code of 202 (ACCEPTED) will be returned and the response body will be a TableStatus object. The TableStatus will indicates the current status of the index including how much work is remaining until the index is consistent with the truth of the table.
The 'partsMask' is an integer "mask" that can be combined into to request any desired part. As of this writing, the mask is defined as follows QueryBundleRequest
For example, to request all parts, the request mask value should be:
0x1 OR 0x2 OR 0x4 OR 0x8 OR 0x10 OR 0x20 OR 0x40 = 0x7F.
Note: The caller must have the READ permission on the TableEntity to make this call.
| id required | string The ID of a TableEntity. |
| concreteType | string Concrete Type |
| entityId | string Entity Id |
| partMask | integer Optional, default all. The 'partsMask' is an integer mask that can be combined into to request any desired part. The mask is defined as follows:
|
object (Query) Query |
{- "concreteType": "...",
- "entityId": "...",
- "partMask": 1,
- "query": {
- "additionalFilters": [
- { },
- { }
], - "includeEntityEtag": true,
- "limit": 12345,
- "offset": 12345,
- "selectedFacets": [
- {
- "columnName": "...",
- "concreteType": "..."
}, - {
- "columnName": "...",
- "concreteType": "..."
}
], - "sort": [
- {
- "column": "...",
- "direction": "DESC"
}, - {
- "column": "...",
- "direction": "ASC"
}
], - "sql": "..."
}
}{- "token": "..."
}Request to create a new snapshot of a table. The provided comment, label, and activity ID will be applied to the current version thereby creating a snapshot and locking the current version. After the snapshot is created a new version will be started with an 'in-progress' label.
NOTE: This service is for TableEntity only. Snapshots of EntityView require asynchronous processing and can be created via: POST /entity/{id}/table/transaction/async/start
| id required | string The ID of a Table Entity. |
| snapshotActivityId | string Optional. If createNewSnapshot=true, the Activity ID to be applied to the snapshot version. Null by default |
| snapshotComment | string Optional. If createNewSnapshot=true, the comment to be applied to the snapshot version. Null by default |
| snapshotLabel | string Optional. If createNewSnapshot=true, the label to be applied to the snapshot version. Null by default |
{- "snapshotActivityId": "...",
- "snapshotComment": "...",
- "snapshotLabel": "..."
}{- "snapshotVersionNumber": 12345
}Asynchronously get the results of a table update transaction started with POST /entity/{id}/table/transaction/async/start
Note: When the result is not ready yet, this method will return a status code of 202 (ACCEPTED) and the response body will be a AsynchronousJobStatus object.
| asyncToken required | string The token returned when the job was started. |
| id required | string The ID of a Table entity. |
{- "concreteType": "...",
- "results": [
- {
- "concreteType": "..."
}, - {
- "concreteType": "..."
}
], - "snapshotVersionNumber": 12345
}Start a table update job that will attempt to make all of the requested changes in a single transaction. All updates will either succeed or fail as a unit. All update requests must be for the same table.
Note: The caller must have the UPDATE permission on the TableEntity to make this call.
Service Limits
| resource | limit |
|---|---|
| The maximum size of a PartialRow change | 2 MB |
| The maximum size of a CSV that can be appended to a table | 1 GB |
| id required | string The ID of a Table Entity. |
Array of objects (TableUpdateRequest) List of changes that describes schema and/or row changes to a table. | |
| concreteType | string Concrete Type |
| createSnapshot | boolean When set to 'true', a snapshot of the table will be created after the change from this transaction request are applied to the table. |
| entityId | string Entity Id |
object (SnapshotRequest) Request to create a new snapshot of a table or view. The provided comment, label, and activity ID will be applied to the current version thereby creating a snapshot and locking the current version. After the snapshot is created a new version will be started with an 'in-progress' label. |
{- "changes": [
- {
- "concreteType": "...",
- "entityId": "..."
}, - {
- "concreteType": "...",
- "entityId": "..."
}
], - "concreteType": "...",
- "createSnapshot": true,
- "entityId": "...",
- "snapshotOptions": {
- "snapshotActivityId": "...",
- "snapshotComment": "...",
- "snapshotLabel": "..."
}
}{- "token": "..."
}Create a new Team.
To specify a Team icon, the icon file must first be uploaded to Synapse as FileHandle. The FileHandle ID can then be put into the Team's icon field.
| canPublicJoin | boolean true for teams which members can join without an invitation or approval |
| createdBy | string The ID of the user that created this Team. |
| createdOn | string The date this Team was created. |
| description | string A short description of this Team. |
| etag | string Synapse employs an Optimistic Concurrency Control (OCC) scheme to handle concurrent updates. Since the E-Tag changes every time a Team is updated it is used to detect when a client's current representation of a Team is out-of-date. |
| icon | string fileHandleId for icon image of the Team |
| id | string The id of the Team. |
| modifiedBy | string The ID of the user that last modified this Team. |
| modifiedOn | string The date this Team was last modified. |
| name | string The name of the Team. |
{- "canPublicJoin": true,
- "createdBy": "...",
- "createdOn": "...",
- "description": "...",
- "etag": "...",
- "icon": "...",
- "id": "...",
- "modifiedBy": "...",
- "modifiedOn": "...",
- "name": "..."
}{- "canPublicJoin": true,
- "createdBy": "...",
- "createdOn": "...",
- "description": "...",
- "etag": "...",
- "icon": "...",
- "id": "...",
- "modifiedBy": "...",
- "modifiedOn": "...",
- "name": "..."
}Update the Team metadata for the specified Team. Note: The client must be a Team administrator to make this request.
the new metadata for the Team
| canPublicJoin | boolean true for teams which members can join without an invitation or approval |
| createdBy | string The ID of the user that created this Team. |
| createdOn | string The date this Team was created. |
| description | string A short description of this Team. |
| etag | string Synapse employs an Optimistic Concurrency Control (OCC) scheme to handle concurrent updates. Since the E-Tag changes every time a Team is updated it is used to detect when a client's current representation of a Team is out-of-date. |
| icon | string fileHandleId for icon image of the Team |
| id | string The id of the Team. |
| modifiedBy | string The ID of the user that last modified this Team. |
| modifiedOn | string The date this Team was last modified. |
| name | string The name of the Team. |
{- "canPublicJoin": true,
- "createdBy": "...",
- "createdOn": "...",
- "description": "...",
- "etag": "...",
- "icon": "...",
- "id": "...",
- "modifiedBy": "...",
- "modifiedOn": "...",
- "name": "..."
}{- "canPublicJoin": true,
- "createdBy": "...",
- "createdOn": "...",
- "description": "...",
- "etag": "...",
- "icon": "...",
- "id": "...",
- "modifiedBy": "...",
- "modifiedOn": "...",
- "name": "..."
}Retrieve a paginated list of Teams matching the supplied name fragment (optional), in alphabetical order by Team name.
Note: This service has JSONP support: If the request parameter "callback=jsMethod" is included (where 'jsMethod' is any function name you wish), then the response body will be wrapped in "jsMethod(...);".
| fragment | string a prefix of the Team name, or a prefix of any sub-string in the name preceded by a space. If omitted, all Teams are returned. |
| limit | integer [ 10 .. 50 ] Default: 10 the maximum number of Teams to return. |
| offset | integer >= 0 Default: 0 the starting index of the returned results (default 0) |
{- "results": [
- {
- "canPublicJoin": true,
- "createdBy": "...",
- "createdOn": "...",
- "description": "...",
- "etag": "...",
- "icon": "...",
- "id": "...",
- "modifiedBy": "...",
- "modifiedOn": "...",
- "name": "..."
}, - {
- "canPublicJoin": true,
- "createdBy": "...",
- "createdOn": "...",
- "description": "...",
- "etag": "...",
- "icon": "...",
- "id": "...",
- "modifiedBy": "...",
- "modifiedOn": "...",
- "name": "..."
}
], - "totalNumberOfResults": 12345
}Retrieve the metadata for a specified Team.
Service Limits
| resource | limit |
|---|---|
| The maximum frequency this method can be called | 1 calls per second |
| id required | string the ID of the Team. |
{- "canPublicJoin": true,
- "createdBy": "...",
- "createdOn": "...",
- "description": "...",
- "etag": "...",
- "icon": "...",
- "id": "...",
- "modifiedBy": "...",
- "modifiedOn": "...",
- "name": "..."
}Retrieve the AccessControlList for a specified Team.
| id required | string the ID of the Team. |
{- "createdBy": "...",
- "creationDate": "12345",
- "etag": "...",
- "id": "...",
- "modifiedBy": "...",
- "modifiedOn": "12345",
- "resourceAccess": [
- {
- "accessType": [
- "UPDATE_SUBMISSION",
- "CHANGE_PERMISSIONS"
], - "principalId": 12345
}, - {
- "accessType": [
- "UPDATE",
- "SEND_MESSAGE"
], - "principalId": 12345
}
]
}Retrieve the download URL for the Team icon, or receive a redirect response to said URL.
| id required | string the ID of the Team. |
| redirect | boolean if true or omitted, then redirect to the URL. If false then simply return the URL. |
"string"Retrieve the download URL for the Team icon preview, or receive a redirect response to said URL.
| id required | string the ID of the Team. |
| redirect | boolean if true or omitted, then redirect to the URL. If false then simply return the URL. |
"string"Remove the given member from the specified Team. Note: The client must either be a Team administrator or the member being removed.
| id required | string the ID of the Team. |
| principalId required | string the member's principal ID |
'
Service Limits
| resource | limit |
|---|---|
| The maximum frequency this method can be called | 1 calls per second |
| id required | string the ID of the Team. |
| principalId required | string the member's principal ID |
{- "isAdmin": true,
- "member": {
- "displayName": "...",
- "email": "...",
- "firstName": "...",
- "isIndividual": true,
- "lastName": "...",
- "ownerId": "...",
- "userName": "..."
}, - "teamId": "..."
}Add a member to the Team.
If the one making the request is the user to be added, then the user must have an open invitation from the Team. If the one making the request is an administrator on the Team, then there must be a pending request from the user to the Team, asking to be added. If both teamEndpoint and notificationUnsubscribeEndpoint are provided, notification email(s) will be sent to the appropriate parties.
| id required | string the ID of the Team. |
| principalId required | string the member's principal ID |
| notificationUnsubscribeEndpoint | string the portal prefix for one-click email unsubscription. A signed, serialized token is appended to create the complete URL: <ahref="${org.sagebionetworks.repo.model.message.NotificationSettingsSignedToken}">NotificationSettingsSignedToken' |
| teamEndpoint | string the portal prefix for the Team URL. The team ID is appended to create the complete URL. |
Retrieve the Team Membership Status bundle for a team and user. This says whether a user is a member of a Team, whether there are outstanding membership requests or invitations, and whether the client making the request can add the given user to the given Team.
| id required | string the ID of the Team. |
| principalId required | string the member's principal ID |
{- "canJoin": true,
- "canSendEmail": true,
- "hasOpenInvitation": true,
- "hasOpenRequest": true,
- "hasUnmetAccessRequirement": true,
- "isMember": true,
- "membershipApprovalRequired": true,
- "teamId": "...",
- "userId": "..."
}Returns the TeamMember info for a team and a given list of members' principal IDs. Invalid IDs in the list are ignored: The results list is simply smaller than the list of IDs passed in.
| id required | string the ID of the Team. |
| list | Array of integers List of IDs |
{- "list": [
- 12345,
- 12345
]
}{- "list": [
- {
- "isAdmin": true,
- "member": {
- "displayName": "...",
- "email": "...",
- "firstName": "...",
- "isIndividual": true,
- "lastName": "...",
- "ownerId": "...",
- "userName": "..."
}, - "teamId": "..."
}, - {
- "isAdmin": true,
- "member": {
- "displayName": "...",
- "email": "...",
- "firstName": "...",
- "isIndividual": true,
- "lastName": "...",
- "ownerId": "...",
- "userName": "..."
}, - "teamId": "..."
}
]
}Update the Access Control List for the specified Team.
the updated Access Control List
| createdBy | string UNUSED -- maintained only for backwards compatibility with archived objects |
| creationDate | string Created Date |
| etag | string Synapse etag value |
| id | string The entity id |
| modifiedBy | string UNUSED -- maintained only for backwards compatibility with archived objects |
| modifiedOn | string UNUSED -- maintained only for backwards compatibility with archived objects |
Array of objects (ResourceAccess) The list of principals who can access the data with the allowed types of access for each. |
{- "createdBy": "...",
- "creationDate": "12345",
- "etag": "...",
- "id": "...",
- "modifiedBy": "...",
- "modifiedOn": "12345",
- "resourceAccess": [
- {
- "accessType": [
- "UPDATE_SUBMISSION",
- "CHANGE_PERMISSIONS"
], - "principalId": 12345
}, - {
- "accessType": [
- "UPDATE",
- "SEND_MESSAGE"
], - "principalId": 12345
}
]
}{- "createdBy": "...",
- "creationDate": "12345",
- "etag": "...",
- "id": "...",
- "modifiedBy": "...",
- "modifiedOn": "12345",
- "resourceAccess": [
- {
- "accessType": [
- "UPDATE_SUBMISSION",
- "CHANGE_PERMISSIONS"
], - "principalId": 12345
}, - {
- "accessType": [
- "UPDATE",
- "SEND_MESSAGE"
], - "principalId": 12345
}
]
}Retrieve a list of Teams given their IDs. Invalid IDs in the list are ignored: The results list is simply smaller than the list of IDs passed in.
| list | Array of integers List of IDs |
{- "list": [
- 12345,
- 12345
]
}{- "list": [
- {
- "canPublicJoin": true,
- "createdBy": "...",
- "createdOn": "...",
- "description": "...",
- "etag": "...",
- "icon": "...",
- "id": "...",
- "modifiedBy": "...",
- "modifiedOn": "...",
- "name": "..."
}, - {
- "canPublicJoin": true,
- "createdBy": "...",
- "createdOn": "...",
- "description": "...",
- "etag": "...",
- "icon": "...",
- "id": "...",
- "modifiedBy": "...",
- "modifiedOn": "...",
- "name": "..."
}
]
}Add a member to the Team. Note: The request is authenticated by a hash message authentication code in the request body, generated by Synapse. The intended use of this service is by the portal, completing a round trip with a 'one-click join-team' link provided to the user by Synapse via email. If both teamEndpoint and notificationUnsubscribeEndpoint are provided, notification email(s) will be sent to the appropriate parties.
| notificationUnsubscribeEndpoint | string notification unsubscribe endpoint |
| teamEndpoint | string Team end point |
| concreteType | string Concrete Type |
| createdOn | string The date-time the token was generated. |
| expiresOn | string The date-time when this token expires. |
| hmac | string The hash message authentication code for the message. |
| memberId | string The ID of the new team member. |
| teamId | string The ID of the team which the user was invited to join. |
| userId | string The ID of the user who is acting to add the new member to the Team. The HMAC in the token authenticates that the request is being made by this user.' |
| version | integer The version of the key used to generate the HMAC. |
{- "concreteType": "...",
- "createdOn": "...",
- "expiresOn": "...",
- "hmac": "...",
- "memberId": "...",
- "teamId": "...",
- "userId": "...",
- "version": 12345
}{- "message": "..."
}Retrieve a paginated list of Team members matching the supplied name prefix. If the prefix is omitted then all members are returned.
Note: This service has JSONP support: If the request parameter "callback=jsMethod" is included (where 'jsMethod' is any function name you wish), then the response body will be wrapped in "jsMethod(...);".
| id required | string the ID of the Team. |
| fragment | string a prefix of the user's first or last name or email address |
| limit | integer [ 10 .. 50 ] Default: 10 the maximum number of members to return. |
| memberType | string Default: "ALL" Enum: "ADMIN" "ALL" "MEMBER" the type of team user to retrieve |
| offset | integer >= 0 Default: 0 the starting index of the returned results |
{- "results": [
- {
- "isAdmin": true,
- "member": {
- "displayName": "...",
- "email": "...",
- "firstName": "...",
- "isIndividual": true,
- "lastName": "...",
- "ownerId": "...",
- "userName": "..."
}, - "teamId": "..."
}, - {
- "isAdmin": true,
- "member": {
- "displayName": "...",
- "email": "...",
- "firstName": "...",
- "isIndividual": true,
- "lastName": "...",
- "ownerId": "...",
- "userName": "..."
}, - "teamId": "..."
}
], - "totalNumberOfResults": 12345
}Retrieve the number of Team members matching the supplied name prefix. If the prefix is omitted then the number of members in the team is returned.
Note: This service has JSONP support: If the request parameter "callback=jsMethod" is included (where 'jsMethod' is any function name you wish), then the response body will be wrapped in "jsMethod(...);".
| id required | string the ID of the Team. |
| fragment | string a prefix of the user's first or last name or email address |
{- "count": 12345
}Returns the TeamMember info for a user and a given list of Team IDs. Not Found status is returned if the user ID is invalid, any of the Team IDs are invalid, or the user is not in any of the given teams.
| id required | string The ID of the Synapse user. |
Team IDs
| list | Array of integers List of IDs |
{- "list": [
- 12345,
- 12345
]
}{- "list": [
- {
- "isAdmin": true,
- "member": {
- "displayName": "...",
- "email": "...",
- "firstName": "...",
- "isIndividual": true,
- "lastName": "...",
- "ownerId": "...",
- "userName": "..."
}, - "teamId": "..."
}, - {
- "isAdmin": true,
- "member": {
- "displayName": "...",
- "email": "...",
- "firstName": "...",
- "isIndividual": true,
- "lastName": "...",
- "ownerId": "...",
- "userName": "..."
}, - "teamId": "..."
}
]
}Retrieve a paginated list of Teams to which the given user belongs.
| id required | string The ID of the Synapse user. |
| limit | integer Default: 10 the maximum number of Teams to return (default 10) |
| offset | integer >= 0 Default: 0 the starting index of the returned results (default 0) |
{- "results": [
- {
- "canPublicJoin": true,
- "createdBy": "...",
- "createdOn": "...",
- "description": "...",
- "etag": "...",
- "icon": "...",
- "id": "...",
- "modifiedBy": "...",
- "modifiedOn": "...",
- "name": "..."
}, - {
- "canPublicJoin": true,
- "createdBy": "...",
- "createdOn": "...",
- "description": "...",
- "etag": "...",
- "icon": "...",
- "id": "...",
- "modifiedBy": "...",
- "modifiedOn": "...",
- "name": "..."
}
], - "totalNumberOfResults": 12345
}Retrieve a paginated list of IDs of Teams to which the given user belongs. If sorting is desired, both sort and ascending must be specified. If they are omitted, results are not sorted.
| id required | string The ID of the Synapse user. |
| ascending | boolean the direction of sort: true for ascending, and false for descending |
| nextPageToken | string controls pagination |
| sort |
{- "nextPageToken": "...",
- "teamIds": [
- "...",
- "..."
]
}The recycle bin (or trash can) is the special folder that holds the deleted entities for users.
Flags the specified entity for priority purge. The entity will be deleted as soon as possible. Once purging is done, the entity will be permanently deleted from the system.
| id required | string The ID of an entity. |
{ }"string"Moves an entity and its descendants out of the trash can back to its original parent. An exception is thrown if the original parent does not exist any more. In that case, please use PUT /trashcan/restored/{id}/{parentId} to restore to a new parent. In such a case you must be a member of the Synapse Access and Compliance Team.
| id required | string The ID of an entity. |
{ }"string"Moves an entity and its descendants out of the trash can to a new parent.
NOTE: This operation cannot be completed if the original parent has been deleted (unless the caller is a member of the Synapse Access and Compliance Team). The service will return a NotFoundException. This is because of the potential security hole arising from allowing access requirements on folders: If an entity is in a restricted folder and then deleted, it cannot be restored unless the new parent has the same restriction level as the original one.
| id required | string The ID of a deleted entity. |
| parentId required | string The ID of the new parent entity. |
{ }"string"Moves an entity and its descendants to the trash can.
| id required | string The ID of an entity. |
{ }"string"Retrieves the paginated list of trash entities deleted by the current user.
| limit | integer [ 10 .. 100 ] Default: 10 The maximum number of entities to retrieve per page. |
| offset | integer >= 0 Default: 0 Paginated results. Offset to the current page. |
{ }{- "effectiveSchema": "...",
- "results": [
- {
- "deletedByPrincipalId": "...",
- "deletedOn": "...",
- "entityId": "...",
- "entityName": "...",
- "originalParentId": "..."
}, - {
- "deletedByPrincipalId": "...",
- "deletedOn": "...",
- "entityId": "...",
- "entityName": "...",
- "originalParentId": "..."
}
], - "totalNumberOfResults": 12345
}Get all publicly available UserProfile data in the system
| ascending | boolean Default: true Used to indicate whether the sort direction is ascending or not. |
| limit | integer Default: 100 Limits the number of items that will be fetched for this page |
| offset | integer Default: 0 The offset index determines where this page will start from. An index of 0 is the first item. |
| sort | string Used to indicate upon which field(s) to sort. |
Get all publicly available UserProfile data in the system
{ }{- "results": [
- {
- "RStudioUrl": "...",
- "company": "...",
- "createdOn": "...",
- "displayName": "...",
- "email": "...",
- "emails": [
- "...",
- "..."
], - "etag": "...",
- "firstName": "...",
- "industry": "...",
- "lastName": "...",
- "location": "...",
- "notificationSettings": {
- "markEmailedMessagesAsRead": true,
- "sendEmailNotifications": true
}, - "openIds": [
- "...",
- "..."
], - "ownerId": "...",
- "position": "...",
- "preferences": [
- {
- "concreteType": "...",
- "name": "..."
}, - {
- "concreteType": "...",
- "name": "..."
}
], - "profilePicureFileHandleId": "...",
- "summary": "...",
- "teamName": "...",
- "url": "...",
- "userName": "..."
}, - {
- "RStudioUrl": "...",
- "company": "...",
- "createdOn": "...",
- "displayName": "...",
- "email": "...",
- "emails": [
- "...",
- "..."
], - "etag": "...",
- "firstName": "...",
- "industry": "...",
- "lastName": "...",
- "location": "...",
- "notificationSettings": {
- "markEmailedMessagesAsRead": true,
- "sendEmailNotifications": true
}, - "openIds": [
- "...",
- "..."
], - "ownerId": "...",
- "position": "...",
- "preferences": [
- {
- "concreteType": "...",
- "name": "..."
}, - {
- "concreteType": "...",
- "name": "..."
}
], - "profilePicureFileHandleId": "...",
- "summary": "...",
- "teamName": "...",
- "url": "...",
- "userName": "..."
}
], - "totalNumberOfResults": 12345
}Get the user bundle of a specified user.
Note: Private fields (e.g. "rStudioUrl") are omitted unless the requester is the profile owner or an administrator.
| id required | string The ID of the Synapse user. |
| mask required | string integer flag defining which components to include in the bundle This integer is used as a bit-string of flags to specify which parts to include in the UserBundle. The mask is defined as follows:
|
{- "ORCID": "...",
- "isACTMember": true,
- "isCertified": true,
- "isVerified": true,
- "userId": "...",
- "userProfile": {
- "RStudioUrl": "...",
- "company": "...",
- "createdOn": "...",
- "displayName": "...",
- "email": "...",
- "emails": [
- "...",
- "..."
], - "etag": "...",
- "firstName": "...",
- "industry": "...",
- "lastName": "...",
- "location": "...",
- "notificationSettings": {
- "markEmailedMessagesAsRead": true,
- "sendEmailNotifications": true
}, - "openIds": [
- "...",
- "..."
], - "ownerId": "...",
- "position": "...",
- "preferences": [
- {
- "concreteType": "...",
- "name": "..."
}, - {
- "concreteType": "...",
- "name": "..."
}
], - "profilePicureFileHandleId": "...",
- "summary": "...",
- "teamName": "...",
- "url": "...",
- "userName": "..."
}, - "verificationSubmission": {
- "attachments": [
- {
- "fileName": "...",
- "id": "..."
}, - {
- "fileName": "...",
- "id": "..."
}
], - "company": "...",
- "createdBy": "...",
- "createdOn": "...",
- "emails": [
- "...",
- "..."
], - "firstName": "...",
- "id": "...",
- "lastName": "...",
- "location": "...",
- "notificationEmail": "...",
- "orcid": "...",
- "stateHistory": [
- {
- "createdBy": "...",
- "createdOn": "...",
- "notes": "...",
- "reason": "...",
- "state": "SUSPENDED"
}, - {
- "createdBy": "...",
- "createdOn": "...",
- "notes": "...",
- "reason": "...",
- "state": "REJECTED"
}
]
}
}Get the user bundle of the caller (my own bundle).
Note: Private fields will be returned.
| mask required | string integer flag defining which components to include in the bundle This integer is used as a bit-string of flags to specify which parts to include in the UserBundle. The mask is defined as follows:
|
{- "ORCID": "...",
- "isACTMember": true,
- "isCertified": true,
- "isVerified": true,
- "userId": "...",
- "userProfile": {
- "RStudioUrl": "...",
- "company": "...",
- "createdOn": "...",
- "displayName": "...",
- "email": "...",
- "emails": [
- "...",
- "..."
], - "etag": "...",
- "firstName": "...",
- "industry": "...",
- "lastName": "...",
- "location": "...",
- "notificationSettings": {
- "markEmailedMessagesAsRead": true,
- "sendEmailNotifications": true
}, - "openIds": [
- "...",
- "..."
], - "ownerId": "...",
- "position": "...",
- "preferences": [
- {
- "concreteType": "...",
- "name": "..."
}, - {
- "concreteType": "...",
- "name": "..."
}
], - "profilePicureFileHandleId": "...",
- "summary": "...",
- "teamName": "...",
- "url": "...",
- "userName": "..."
}, - "verificationSubmission": {
- "attachments": [
- {
- "fileName": "...",
- "id": "..."
}, - {
- "fileName": "...",
- "id": "..."
}
], - "company": "...",
- "createdBy": "...",
- "createdOn": "...",
- "emails": [
- "...",
- "..."
], - "firstName": "...",
- "id": "...",
- "lastName": "...",
- "location": "...",
- "notificationEmail": "...",
- "orcid": "...",
- "stateHistory": [
- {
- "createdBy": "...",
- "createdOn": "...",
- "notes": "...",
- "reason": "...",
- "state": "SUSPENDED"
}, - {
- "createdBy": "...",
- "createdOn": "...",
- "notes": "...",
- "reason": "...",
- "state": "REJECTED"
}
]
}
}Get the user-groups in the system
| ascending | boolean Default: true Return results in ascending order. |
| limit | integer Default: 10 the maximum number of results to return. |
| offset | integer >= 0 Default: 0 the starting index of the returned results. |
| sort | string Default: "NONE" Sort results. |
Get the user-groups in the system
{ }{- "results": [
- {
- "creationDate": "...",
- "etag": "...",
- "id": "...",
- "isIndividual": true,
- "uri": "..."
}, - {
- "creationDate": "...",
- "etag": "...",
- "id": "...",
- "isIndividual": true,
- "uri": "..."
}
], - "totalNumberOfResults": 12345
}Get Users and Groups that match the given prefix.
| limit | integer Default: 10 Limits the number of items that will be fetched for this page. |
| offset | integer >= 10 Default: 0 The offset index determines where this page will start from. An index of 0 is the first item. |
| prefix | string The name to search for. |
| typeFilter | string Enum: "ALL" "TEAMS_ONLY" "USERS_ONLY" Restrict the results to a type of principal. Available options: TypeFilter.' |
{- "children": [
- {
- "displayName": "...",
- "email": "...",
- "firstName": "...",
- "isIndividual": true,
- "lastName": "...",
- "ownerId": "...",
- "userName": "..."
}, - {
- "displayName": "...",
- "email": "...",
- "firstName": "...",
- "isIndividual": true,
- "lastName": "...",
- "ownerId": "...",
- "userName": "..."
}
], - "prefixFilter": "...",
- "totalNumberOfResults": 12345
}Get Users and Groups that match the given list of aliases.
The list of principal aliases to lookup. Each alias must be either a user name or team name. The maximum number of aliases per request is 100.
| list | Array of strings List of principal aliases |
{- "list": [
- "...",
- "..."
]
}{- "list": [
- {
- "displayName": "...",
- "email": "...",
- "firstName": "...",
- "isIndividual": true,
- "lastName": "...",
- "ownerId": "...",
- "userName": "..."
}, - {
- "displayName": "...",
- "email": "...",
- "firstName": "...",
- "isIndividual": true,
- "lastName": "...",
- "ownerId": "...",
- "userName": "..."
}
]
}Batch get UserGroupHeaders. This fetches information about a collection of users or groups, specified by Synapse IDs.
| ids required | string IDs are specified as request parameters at the end of the URL, separated by commas. For example: ids=1001,819 |
Batch get UserGroupHeaders. This fetches information about a collection of users or groups, specified by Synapse IDs.
{ }{- "children": [
- {
- "displayName": "...",
- "email": "...",
- "firstName": "...",
- "isIndividual": true,
- "lastName": "...",
- "ownerId": "...",
- "userName": "..."
}, - {
- "displayName": "...",
- "email": "...",
- "firstName": "...",
- "isIndividual": true,
- "lastName": "...",
- "ownerId": "...",
- "userName": "..."
}
], - "prefixFilter": "...",
- "totalNumberOfResults": 12345
}Get the profile of the caller (my profile).
Note: Private user profile fields will be returned.
'{- "RStudioUrl": "...",
- "company": "...",
- "createdOn": "...",
- "displayName": "...",
- "email": "...",
- "emails": [
- "...",
- "..."
], - "etag": "...",
- "firstName": "...",
- "industry": "...",
- "lastName": "...",
- "location": "...",
- "notificationSettings": {
- "markEmailedMessagesAsRead": true,
- "sendEmailNotifications": true
}, - "openIds": [
- "...",
- "..."
], - "ownerId": "...",
- "position": "...",
- "preferences": [
- {
- "concreteType": "...",
- "name": "..."
}, - {
- "concreteType": "...",
- "name": "..."
}
], - "profilePicureFileHandleId": "...",
- "summary": "...",
- "teamName": "...",
- "url": "...",
- "userName": "..."
}Batch get UserGroupHeaders. This fetches information about a collection of users or groups, specified by Synapse IDs.'
IDs are specified as request parameters at the end of the URL, separated by commas. For example: ids=1001,819
| list | Array of integers List of IDs |
{- "list": [
- 12345,
- 12345
]
}{- "effectiveSchema": "...",
- "list": [
- {
- "RStudioUrl": "...",
- "company": "...",
- "createdOn": "...",
- "displayName": "...",
- "email": "...",
- "emails": [
- "...",
- "..."
], - "etag": "...",
- "firstName": "...",
- "industry": "...",
- "lastName": "...",
- "location": "...",
- "notificationSettings": {
- "markEmailedMessagesAsRead": true,
- "sendEmailNotifications": true
}, - "openIds": [
- "...",
- "..."
], - "ownerId": "...",
- "position": "...",
- "preferences": [
- {
- "concreteType": "...",
- "name": "..."
}, - {
- "concreteType": "...",
- "name": "..."
}
], - "profilePicureFileHandleId": "...",
- "summary": "...",
- "teamName": "...",
- "url": "...",
- "userName": "..."
}, - {
- "RStudioUrl": "...",
- "company": "...",
- "createdOn": "...",
- "displayName": "...",
- "email": "...",
- "emails": [
- "...",
- "..."
], - "etag": "...",
- "firstName": "...",
- "industry": "...",
- "lastName": "...",
- "location": "...",
- "notificationSettings": {
- "markEmailedMessagesAsRead": true,
- "sendEmailNotifications": true
}, - "openIds": [
- "...",
- "..."
], - "ownerId": "...",
- "position": "...",
- "preferences": [
- {
- "concreteType": "...",
- "name": "..."
}, - {
- "concreteType": "...",
- "name": "..."
}
], - "profilePicureFileHandleId": "...",
- "summary": "...",
- "teamName": "...",
- "url": "...",
- "userName": "..."
}
]
}Update your own profile
Note: The user associated with the UserProfile "ownerId" must match the identity of the caller, otherwise an Unauthorized response will occur.
| RStudioUrl | string URL for RStudio server assigned to the user |
| company | string This person's current affiliation |
| createdOn | string The date this profile was created. |
| displayName | string Deprecated Will always be null. |
string Deprecated Users can have more than one email. See emails | |
| emails | Array of strings The list of user email addresses registered to this user. |
| etag | string (Etag) Synapse employs an Optimistic Concurrency Control (OCC) scheme to handle concurrent updates. Since the E-Tag changes every time an entity is updated it is used to detect when a client's current representation of an entity is out-of-date. |
| firstName | string This person's given name (forename) |
| industry | string The industry/discipline that this person is associated with |
| lastName | string This person's family name (surname) |
| location | string This person's location |
object (Settings) Contains a user's notification settings | |
| openIds | Array of strings 'The list of OpenIds bound to this user's account.' |
| ownerId | string 'A foreign key to the ID of the 'principal' object for the user.' |
| position | string This person's current position title |
Array of objects (UserPreference) User preferences | |
| profilePicureFileHandleId | string The FileHandle.id of the user's profile picture. |
| summary | string A summary description about this person |
| teamName | string This person's default team name |
| url | string A link to more information about this person |
| userName | string A name chosen by the user that uniquely identifies them. |
{- "RStudioUrl": "...",
- "company": "...",
- "createdOn": "...",
- "displayName": "...",
- "email": "...",
- "emails": [
- "...",
- "..."
], - "etag": "...",
- "firstName": "...",
- "industry": "...",
- "lastName": "...",
- "location": "...",
- "notificationSettings": {
- "markEmailedMessagesAsRead": true,
- "sendEmailNotifications": true
}, - "openIds": [
- "...",
- "..."
], - "ownerId": "...",
- "position": "...",
- "preferences": [
- {
- "concreteType": "...",
- "name": "..."
}, - {
- "concreteType": "...",
- "name": "..."
}
], - "profilePicureFileHandleId": "...",
- "summary": "...",
- "teamName": "...",
- "url": "...",
- "userName": "..."
}{- "RStudioUrl": "...",
- "company": "...",
- "createdOn": "...",
- "displayName": "...",
- "email": "...",
- "emails": [
- "...",
- "..."
], - "etag": "...",
- "firstName": "...",
- "industry": "...",
- "lastName": "...",
- "location": "...",
- "notificationSettings": {
- "markEmailedMessagesAsRead": true,
- "sendEmailNotifications": true
}, - "openIds": [
- "...",
- "..."
], - "ownerId": "...",
- "position": "...",
- "preferences": [
- {
- "concreteType": "...",
- "name": "..."
}, - {
- "concreteType": "...",
- "name": "..."
}
], - "profilePicureFileHandleId": "...",
- "summary": "...",
- "teamName": "...",
- "url": "...",
- "userName": "..."
}Get the profile of a specified user.
Note: Private fields (e.g. "rStudioUrl") are omitted unless the requester is the profile owner or an administrator.
'| profileId required | string The ID of the Synapse user. |
{- "RStudioUrl": "...",
- "company": "...",
- "createdOn": "...",
- "displayName": "...",
- "email": "...",
- "emails": [
- "...",
- "..."
], - "etag": "...",
- "firstName": "...",
- "industry": "...",
- "lastName": "...",
- "location": "...",
- "notificationSettings": {
- "markEmailedMessagesAsRead": true,
- "sendEmailNotifications": true
}, - "openIds": [
- "...",
- "..."
], - "ownerId": "...",
- "position": "...",
- "preferences": [
- {
- "concreteType": "...",
- "name": "..."
}, - {
- "concreteType": "...",
- "name": "..."
}
], - "profilePicureFileHandleId": "...",
- "summary": "...",
- "teamName": "...",
- "url": "...",
- "userName": "..."
}Get the actual URL of the image file associated with a user's profile.
Note: This call will result in a HTTP temporary redirect (307), to the actual file URL if the caller meets all of the download requirements.
| profileId required | string The ID of the Synapse user. |
| redirect | boolean When set to false, the URL will be returned as text/plain instead of redirecting. |
"string"Get the actual URL of the image file associated with a user''s profile.
Note: This call will result in a HTTP temporary redirect (307), to the actual file URL if the caller meets all of the download requirements.
| profileId required | string The ID of the Synapse user. |
| redirect | boolean When set to false, the URL will be returned as text/plain instead of redirecting. |
"string"